我有以下场景:
- 我正在将 iPhone 上的图像连同 EXIF 信息一起发送到我的 Python 套接字服务器。
- 我需要根据拍摄图像时的实际方向正确定位图像。我知道 IOS 总是将图像保存为横向左并将实际方向添加为 EXIF 字段(EXIF.Image.Orientation)。
- 我正在读取 EXIF 字段以查看实际方向。然后我使用 wxpython 将图像旋转到正确的方向。
我正在使用 pyexiv2 进行 EXIF 操作。
问题:EXIF 信息(包括使用 wxpython 旋转图像时丢失的缩略图)。
我做了什么:我在旋转图像之前读取 EXIF。我重置了 EXIF 中的方向字段。然后我在旋转后把它放回去。
问题:
EXIF 内的缩略图不旋转。因此,图像和缩略图具有不同的方向。
问题?
除了 PIL 之外,还有其他模块可以旋转图像并保留其 EXIF 信息吗?
是否有单独的 EXIF 字段用于缩略图方向?
有没有办法可以单独旋转缩略图?
感谢您的帮助...
这个解决方案对我有用:PIL 缩略图正在旋转我的图像? https://stackoverflow.com/questions/4228530/pil-thumbnail-is-rotating-my-image
不需要检查它是iPhone还是iPad:
如果照片有方向标签 - 旋转它。
from PIL import Image, ExifTags
try:
image=Image.open(filepath)
for orientation in ExifTags.TAGS.keys():
if ExifTags.TAGS[orientation]=='Orientation':
break
exif = image._getexif()
if exif[orientation] == 3:
image=image.rotate(180, expand=True)
elif exif[orientation] == 6:
image=image.rotate(270, expand=True)
elif exif[orientation] == 8:
image=image.rotate(90, expand=True)
image.save(filepath)
image.close()
except (AttributeError, KeyError, IndexError):
# cases: image don't have getexif
pass
Before:
After:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)