Нужен ли сегодня эксифтран для сброса ориентации изображений JPEG?

Уже более десяти лет я использую exiftranповорот изображений после получения их с камеры.

Нужен ли этот шаг сегодня?

Браузеры и другие приложения для работы с изображениями не поворачивают изображение правильно, не запуская exiftran для файлов.

Предыстория эксифтрана (со страницы эксифтранаman ):

exiftran — это утилита командной строки для преобразования цифровых изображений в формат JPEG. Он может выполнять повороты без потерь, как jpegtran, но в отличие от jpegtran он заботится о данных EXIF: он может автоматически поворачивать изображения, проверяя тег ориентации exif, при необходимости обновляет информацию exif (размер изображения, ориентация), а также поворачивает миниатюру exif. . Он может обрабатывать несколько изображений одновременно.

Это, без сомнения, будет вопросом мнения. Лично я до сих пор время от времени испытываю боль, когда обнаруживаю, что реальная ориентация изображения не та, чем кажется, поэтому я стараюсь максимально устранить несоответствие в своих файлах.
большинство комбинаций камеры/программного обеспечения будут автоматически поворачиваться все время. Это зависит от нескольких факторов, и могут быть ошибки (например, камера не записывает правильную ориентацию на конкретном снимке).
@AKPhoto Насколько мне известно, все камеры с автоматическим поворотом делают это, устанавливая флаг в заголовке JPEG, указывающий, что изображение должно быть отрисовано с этим поворотом, а не фактическим изменением пикселей. Раньше для программного обеспечения для просмотра было очень характерно не знать или не учитывать флаг поворота, поэтому jpegtranего производные могут взять этот флаг и фактически (без потерь) переписать изображение так, чтобы оно было ориентировано по-другому, заставляя его всегда отображаться в правильной ориентации. Вопрос здесь в том, нужно ли это по-прежнему, или значительная часть клиентского программного обеспечения теперь сама «достаточно умна».

Ответы (3)

Уже более десяти лет я использую exiftranповорот изображений после получения их с камеры. Нужен ли этот шаг сегодня?

Да.

Браузеры и другие приложения для работы с изображениями не поворачивают изображение правильно, не работая exiftranс файлами.

Нет.


Как заявил @junkyardsparkle:

Лично я до сих пор время от времени испытываю боль, когда обнаруживаю, что реальная ориентация изображения не та, чем кажется, поэтому я стараюсь максимально устранить несоответствие в своих файлах.

И отметил @AK:

Могут быть ошибки (например, камера не записывает правильную ориентацию на конкретном снимке).

Кроме того, часто изображения могут отделяться от их данных Exif. Или изображения могут сохраняться повернутыми, но Exif не обновляется. Или несколько программ могут по-разному обрабатывать флаг поворота, что приводит к отображению разных ориентаций.

Лучший способ свести к минимуму неожиданности и максимизировать совместимость — использовать exiftranповорот изображений. Можно написать скрипт для автоматического поворота всех файлов при импорте.

ОБНОВЛЕНИЕ: похоже, вам больше не нужно физически поворачивать изображения с помощью Firefox/Opera/Chromium в Linux. Например, это не работает с Chromium версии 73.0, но работает с Chromium версии 83.0. Я пересмотрел сценарии, которые я использую для размещения своих изображений в Интернете, и обнаружил, что причина, по которой они не работали, заключалась в вызове ImageMagick «mogrify -auto-orient», который я использовал для изменения размера исходного изображения для использования в Интернете. Теперь я вызываю mogrify без этой опции, и у меня нет проблем в последних браузерах, если ориентация, предоставленная вашей камерой, конечно, в порядке, что обычно и бывает. Так что обычно вам больше не нужны ни exiftran, ни jpegtran, ни exifautotran. Период.

УСТАРЕЛО: AFAIK поворот изображения все еще необходим в 2020 году в браузерах, но jpegtran выполняет эту работу так же хорошо, как exiftran. jpegtran сохраняет все теги до тех пор, пока используется параметр «-copy all», который не является новым: это стало возможным, начиная с версии 6b libjpeg, выпущенной 27 марта 1998 года. Если вам всегда требуется сохранение тегов/маркеров, вы можете использовать псевдоним:

alias jpegtran='jpegtran -copy all'

Вы также можете оставить комментарии только с помощью «jpegtran -копировать комментарии». Редактирование на месте не поддерживается с помощью jpegtran, но, конечно, это тоже не проблема. Вы также можете использовать exifautotran, который выполняет автоматическую настройку.

Так что ИМХО вам просто не нужно устанавливать exiftran, это отдельная программа, а просто использовать jpegtran, который идет в комплекте с libjpeg.

PS Нехорошо распространять дезинформацию, чтобы очернить конкурентов ;-)

Спасибо за ваш ответ. Я задавал этот вопрос несколько лет назад. Вы сказали: «PS Нехорошо распространять дезинформацию, чтобы очернить конкурентов ;-)». Какой текст вы имеете в виду? Я обновлю его.
Я тоже не понимаю заявления о "дезинформации" и "конкурентах".
Привет, Дезинформация содержится в предоставленной «Истории о exiftran», а именно: «Он [exiftran] может выполнять вращение без потерь, как jpegtran, но, в отличие от jpegtran, он заботится о данных EXIF». Как я объяснил, jpegtran действительно заботится о данных EXIF ​​(по крайней мере, с 1998 года).
Этот цитируемый текст взят прямо со manстраницы для exiftran. Пример

Не все мои камеры довольны изображениями, повернутыми на компьютере, и отказываются отображать их вообще или, по крайней мере, использовать тот же способ их отображения, что и при изменении флажка поворота. Так что, по крайней мере, на картах памяти любые манипуляции с вращением должны выполняться в камере для достижения наилучших результатов, и это влияет только на флаг вращения, а не на данные.

Если бы просмотровые программы можно было научить делать поворот для карт памяти от конкретной камеры определенным образом (а для некоторых камер - только возясь с флажками поворота), то фиксацию поворота на картах памяти можно было бы делать на компьютере, а не на камера.

Напротив, большинство программ, с которыми я работаю, не имеют проблем с правильной интерпретацией флагов ротации. Итак, я считаю exiftran, что в наши дни его использование совершенно вредно, по крайней мере, на исходных носителях. По общему признанию, мои камеры, как правило, намного старше, чем программное обеспечение на моем компьютере: это может сыграть свою роль.