Как изменить тег ориентации EXIF ​​(желательно с помощью PythonMagick)?

Я масштабирую и поворачиваю некоторые JPEG-файлы, используя PythonMagick. В идеале я мог бы обновить тег EXIF ​​Orientation. Однако, хотя я могу получить значение этого тега, я не могу изменить его. Рассматривать:

from PythonMagick import Image

i = Image("image.jpg")
print i.attribute("EXIF:Orientation")
i.attribute("EXIF:Orientation", "5")
i.write("image-modified.jpg")

Запуск этого показывает оригинальную ориентацию вашего изображения:

exarkun@top:/tmp$ python broken.py 
6
exarkun@top:/tmp$

И пока для начала не было 5, exiftool будет демонстрировать, что у нового файла не была изменена его ориентация:

exarkun@top:/tmp$ exiftool image.jpg | grep Orient
Orientation                     : Rotate 90 CW
exarkun@top:/tmp$ exiftool image-modified.jpg | grep Orient
Orientation                     : Rotate 90 CW
exarkun@top:/tmp$ 

Почему ImageMagick не записывает измененную ориентацию? Как я могу получить это?

1 ответ

Этот вопрос похож на: Exif библиотека манипуляций для Python

Также см.: Копирование и запись EXIF-информации с одного изображения на другое с помощью pyexiv2.

Вышесказанное предполагает использование pyexiv2 для чтения и записи данных exif. Я понимаю, что это не использование PythonMagick, а использование библиотеки Python "высокого уровня" для записи данных EXIF, и, по крайней мере, насколько я могу судить, это лучшее (только?) Решение в настоящее время.

Похоже, что ImageMagick способен, поэтому, возможно, кто-то может рассказать здесь о том, как это можно сделать с помощью Python; см.: Как добавить exif-данные в изображение?

Другие вопросы по тегам