我已经在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资源管理器不会显示正确旋转的缩略图,但是在打开文件后,图像会旋转。
如果您对这些问题和/或代码有任何答案,请帮助我。 提前致谢。 巴勃罗