Python / PIL - поворот изображения при сохранении данных EXIF ​​и обновление EXIF - PullRequest
0 голосов
/ 08 октября 2019

Я создал API на python (используя Flask), который будет получать местоположение изображения и поворачиваться вправо или влево по запросу. 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 не отображает эскизы, повернутые правильно, но после открытия файлаизображение повернуто.

Если у вас есть ответ на любой из этих вопросов и / или код, пожалуйста, помогите мне. Заранее спасибо. Pablo

...