Exif属性 包括
EXIF_TAG_ARTIST (0x013B): 图像的作者信息。
EXIF_TAG_COPYRIGHT (0x8298): 版权信息。
EXIF_TAG_DATETIME (0x0132): 原始图像的创建日期和时间。
EXIF_TAG_IMAGE_DESCRIPTION (0x010E): 图像的文字描述。
EXIF_TAG_MAKE (0x010F): 制造商/品牌信息。
EXIF_TAG_MODEL (0x0110): 相机或设备型号。
EXIF_TAG_ORIENTATION (0x0112): 图像的方向。
EXIF_TAG_SOFTWARE (0x0131): 创建或编辑图像的软件名称。
EXIF_TAG_EXPOSURE_TIME (0x829A): 曝光时间。
EXIF_TAG_FNUMBER (0x829D): 光圈值。
EXIF_TAG_ISO_SPEED (0x8827): ISO感光度。
EXIF_TAG_FOCAL_LENGTH (0x920A): 焦距。
EXIF_TAG_GPSINFO (0x8825): 包含GPS信息的子字段。
EXIF_TAG_USER_COMMENT (0x9286): 用户评论。
EXIF_TAG_FLASH (0x9209): 闪光灯状态。
EXIF_TAG_WHITE_BALANCE (0xA403): 白平衡模式。
EXIF_TAG_GPS_LATITUDE (0x0002): 纬度值。
EXIF_TAG_GPS_LONGITUDE (0x0004): 经度值。
EXIF_TAG_GPS_ALTITUDE (0x0006): 海拔高度。
EXIF_TAG_GPS_DATESTAMP (0x001D): GPS日期。
EXIF_TAG_GPS_TIMESTAMP (0x0007): GPS时间戳。
def add_exif_data(photo_path=None, photo_data=None): """ Args: photo_path: photo_data: Returns: """ if photo_path: image = Image.open(photo_path) elif photo_data: image_stream = BytesIO(photo_data) image = Image.open(image_stream) else: return False exif_stream = BytesIO() # 获取Exif数据 exif_data = image.getexif() # 定义新的Exif作者信息 new_artist = "一天一点".encode("utf-8") new_software = "做图吧".encode("utf-8") # 定义Exif标签常量 EXIF_TAG_ARTIST = 0x013B # Exif的Artist标签 作者 EXIF_TAG_SOFTWARE = 0x0131 # Exif的Software标签 程序名称 # 创建新的Exif数据字典 new_exif_data = { EXIF_TAG_ARTIST: new_artist, EXIF_TAG_SOFTWARE: new_software } # 更新Exif数据 if exif_data is not None: for tag, value in new_exif_data.items(): exif_data[tag] = value # 将更新后的Exif数据写回图像 image.save(exif_stream, "JPEG", exif=exif_data) else: # 如果没有Exif数据,创建新的Exif数据并保存 exif_data = new_exif_data image.save(exif_stream, "JPEG", exif=exif_data) # image.save("/tmp/2221212121.jpg", exif=exif_data) return exif_stream.getvalue() if __name__ == "__main__": # add_watermark("/tmp/1234.jpeg") r = add_exif_data("/tmp/111234.jpg", photo_data=None) print(r)
标签:Exif,EXIF,exif,Python,photo,TAG,data,属性 From: https://www.cnblogs.com/zhaoyingjie/p/17641264.html