gpt4 book ai didi

python - 调整大小时使用 PIL 保留图像的 exif 数据(创建缩略图)

转载 作者:太空狗 更新时间:2023-10-29 16:56:03 25 4
gpt4 key购买 nike

当我尝试使用 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 数据,但图像 im(512_a.JPEG) 没有。

最佳答案

我通读了一些源代码并找到了一种方法来确保 exif 数据与缩略图一起保存。

当您在 PIL 中打开一个 jpg 文件时,Image 对象有一个 info 属性,它是一个字典。其中一个键称为 exif,它有一个字节字符串值 - 来自图像的原始 exif 数据。您可以将此字节字符串传递给保存方法,它应该将 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

关于python - 调整大小时使用 PIL 保留图像的 exif 数据(创建缩略图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17042602/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com