作为使用 Pillow 的应用程序的一部分,我想为一堆照片更新 exif,包括艺术家姓名、标题等。到目前为止,我一直在使用 piexif 来做这件事。但是我遇到了编码问题:
import PIL.Image
import piexif
img = PIL.Image.open("photo.jpg")
exif_dict = piexif.load(img.info["exif"])
exif_dict.get("0th").update({
315: "Lebœuf", # ExifTag for "Artist"
})
img.save("photo.jpg", "jpeg", exif=exif_dict)
UnicodeEncodeError: 'latin-1' codec can't encode character '\u0153' in position 3: ordinal not in range(256)
编码和它的错误是一场噩梦,一个生命不足以让我只掌握它的精神。我知道该字符œ不是 latin1 编码的一部分,piexif 使用它而不控制它。但是,如果我在 Windows 10 资源管理器上手动添加 exif 标签,我可以成功添加该字符,甚至可以通过piexif.load(). 我的理解是好像没有必要强加 latin1 编码?有没有我可以使用的解决方法或其他模块?