当我尝试使用 PIL 调整图像大小(缩略图)时,exif 数据丢失。
我必须做什么才能保留缩略图中的 exif 数据?当我搜索相同内容时,得到了一些链接,但似乎没有一个有效。
from PIL import Image
import StringIO
file_path = '/home/me/img/a.JPG'
im = Image.open( file_path)
THUMB_SIZES = [(512, 512)]
for thumbnail_size in THUMB_SIZES:
im.thumbnail( thumbnail_size, Image.ANTIALIAS)
thumbnail_buf_string = StringIO.StringIO()
im.save('512_' + "a", "JPEG")
原始图像具有 exif 数据,但 (512_a.JPEG) 中的图像没有。
我通读了一些源代码,找到了一种方法来确保 exif 数据与缩略图一起保存。
当你在PIL中打开jpg文件时,Image
对象有一个info
属性是一个字典。其中一个键称为exif
它有一个字节字符串值 - 来自图像的原始 exif 数据。您可以将此字节字符串传递给 save 方法,它应该将 exif 数据写入新的 jpg 文件:
from PIL import Image
size = (512, 512)
im = Image.open('P4072956.jpg')
im.thumbnail(size, Image.ANTIALIAS)
exif = im.info['exif']
im.save('P4072956_thumb.jpg', exif=exif)
要获取人类可读版本的 exif 数据,您可以执行以下操作:
from PIL import Image
from PIL.ExifTags import TAGS
im = Image.open('P4072956.jpg')
for k, v in im.getexif().items():
print(TAGS.get(k, k), v)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)