Поворот родных изображений iPhone на основе информации EXIF?
Работаю над сайтом, на который пользователи могут загружать фотографии. Как многие из вас знают, неотредактированные фотографии iPhone используют EXIF-тег "Orientation" для определения ориентации. На моем ПК я не могу загружать файлы .HEIC, и я не могу загружать файлы, если я делаю manage.py runserver localhostIP:8000 по причине SSL, поэтому отладка довольно затруднительна. Если посмотреть на EXIF-данные фотографий iPhone, кажется, что это должно правильно повернуть изображения iPhone, но они все равно загружаются с неправильной ориентацией, и я не могу посмотреть, какие EXIF-теги возвращают фотографии iPhone в бэкенд.
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 и Samsung будет применено правильное вращение.