如何给图片添加exif信息
时间: 2024-10-07 07:06:35 浏览: 19
在Python中,可以使用`PIL`(Pillow)库来添加EXIF信息到图片文件。首先,你需要导入必要的模块,并创建一个字典来存储你想要添加的信息。然后,你可以打开图片,调用 `_putexif()` 方法来添加EXIF。这里有一个简单的示例:
```python
from PIL import Image, ExifField, _ImageFile
# 图片路径
img_path = 'example.jpg'
# 创建一个字典,键是Exif tag ID,值是你想设置的值
exif_data = {
ExifField.EXIF_IFD.DateTimeOriginal: "2023:04:01 12:00:00",
# 添加其他字段,例如GPS位置等
}
try:
# 打开图片
with Image.open(img_path) as img:
# 将字典转换为byte数组
exif_bytes = dict_to_byte_array(exif_data)
# 获取现有的EXIF数据,如果有的话
old_exif = img._getexif()
# 如果已有EXIF数据,则合并新的数据
if old_exif is not None:
exif_bytes.update(_convert_ifd(old_exif))
# 添加新的EXIF数据
img._putexif(exif_bytes)
img.save(img_path, "JPEG") # 保存图片并保留EXIF
except Exception as e:
print(f"添加EXIF信息失败:{e}")
def dict_to_byte_array(d):
return b"\x00" * 6 + b"".join([v.to_bytes(4, byteorder="little") for k, v in d.items()])
def _convert_ifd(ifd):
new_ifd = {}
for tag, value in ifd.items():
new_tag = ExifField.get_tag(tag)
if new_tag is not None:
new_ifd[new_tag] = value
return new_ifd
阅读全文