Python / PIL-旋转图像,同时保留EXIF数据并更新EXIF

时间:2019-10-07 23:43:50

标签: python exif

我已经在python上制作了一个API(使用Flask),该API将接收一个Image位置,并根据要求向右或向左旋转。 API将接收文件名和“方向”(它必须旋转多少度:90、180、270)。 我为此使用的python代码是:

picture= Image.open(filename)
pict_info = picture.info
if 'exif' in pict_info.keys(): 
    exif = pict_info['exif']
    picture.rotate(orientation, expand=True).save(filename, exif=exif)
    print('Rotating:'+filename)
else: 
    picture.rotate(orientation, expand=True).save(filename)
    print('Rotating:'+filename)

# if Image has EXIF info, it will copy it into the rotated image    
picture.close()

此代码将旋转图像并将原始EXIF信息保留到新图像中。

在这里,我对最佳做法有几个疑问: 1)我是否应该在保存之前编辑EXIF信息,以便更改“图像方向”和“缩略图方向”的EXIF标签,以使EXIF信息更加真实? 2)我应该交换以下标记的宽度和长度值(现在的宽度是长度,反之亦然):'Image ImageWidth','Thumbnail ImageWidth','EXIF ExifImageWidth','Image ImageLength','Thumbnail ImageLength', 'EXIF ExifImageLength'? 3)我应该对EXIF标签“ JPEGThumbnail”做些什么?这是嵌入到需要旋转的文件中的实际图像吗?

关于最后一点,我注意到有时Windows资源管理器不会显示正确旋转的缩略图,但是在打开文件后,图像会旋转。

如果您对这些问题和/或代码有任何答案,请帮助我。 提前致谢。 巴勃罗

0 个答案:

没有答案