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)