旋转原生iPhone图像基于EXIF信息?



正在制作一个用户可以上传照片的网站。你们很多人都知道,未经编辑的iPhone照片使用"方向"EXIF标记来确定方向。在我的PC上,我不能上传。heic文件,如果我做manage.py runserver localhostIP:8000由于SSL的原因,我不能上传文件,所以很难调试。查看iPhone照片上的EXIF数据,似乎这应该正确旋转iPhone图像,但它们仍然以不正确的方向上传,而且我无法真正查看iPhone图片在后端返回的EXIF标签。

im = Image.open(self.content_media)
img_exif = im.getexif()
for key, val in img_exif.items():
    print(val)
    if "rotate 90 cw" in str(val).lower():
        im.rotate(90)
    if "rotate 180 cw" in str(val).lower():
        im.rotate(180)
    if "rotate 270 cw" in str(val).lower():
        im.rotate(270)

这是我的一个有媒体的模型的保存方法。

from PIL import Image, ImageOps
image = Image.open(foo)
im = ImageOps.exif_transpose(image)

然后你可以做任何压缩/调整大小/重命名或任何你使用PIL的事情,但原生iPhone和三星照片将有适当的旋转应用。