Масштабирование и поворот изображения вне зависимости от данных EXIF?


10

Существует ли такая вещь, как простой редактор изображений для Linux, который позволяет масштабировать и поворачивать изображение, не используя данные EXIF ​​для масштабирования и вращения?

До сих пор я пробовал EOG , Shotwell и GIMP, и когда я поворачивал изображения, они сохраняли его в заголовке EXIF. Это я не хочу.

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


2
Таким образом, в основном, если вы поворачиваете изображение на 90 градусов влево, вы хотите, чтобы само изображение поворачивалось в данных на 90 градусов влево? Не через информацию, хранящуюся в данных EXIF, правильно?
JakeGould

Точно. Мне это нужно, потому что файлы Github README.md не понимают EXIF.
Жасмин Логн

Бинго! Я написал более полный ответ, но я считаю, что проблема, с которой вы сталкиваетесь, заключается в фундаментальном различии между сохранением изображения в современной программе для редактирования изображений и его экспортом . Мой ответ более детален, но я полагаю, что если вы экспортируете JPEG через GIMP, вы получите точные результаты, которые вам нужны, без необходимости иметь дело с данными EXIF, предпочтительными для таких преобразований, как масштабирование и вращение.
JakeGould

При использовании экспорта GIMP в формате EXIF ​​обрезанный JPEG добавил новый.
Жасмин Логн

Да, возможно, он добавил новые данные EXIF, но были ли изменены фактические данные изображения в соответствии с ориентацией, как задан ваш вопрос?
JakeGould

Ответы:


15

Существует ли такая вещь, как простой редактор изображений для Linux, который позволяет масштабировать и поворачивать изображение, не используя данные EXIF ​​для масштабирования и вращения?

Сохранение против экспорта

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

В прошлом 100% всех графических редакторов в мире фактически преобразовывали / модифицировали пиксели при работе с простыми преобразованиями ориентации. Только сравнительно недавно программы редактирования изображений используют данные EXIF ​​для хранения некоторых физических данных преобразования.

Почему? Легко. Поскольку формат JPEG - это формат с потерями, даже если качество установлено на 100%, сохранение JPEG для простых вещей, таких как поворот изображения, будет медленно ухудшать данные. Напротив, сохраняя эти данные в виде информации EXIF, необработанное изображение JPEG остается нетронутым, но данные преобразования передаются, так что вы можете видеть, что изображение поворачивается без ухудшения качества изображения в процессе.

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

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

Пакетная обработка

Все это говорит о том, что вы упоминаете, что GIMP может быть слишком трудоемким для ваших нужд. Непонятно, каков ваш точный рабочий процесс, но если у вас есть папка / каталог, заполненный JPEG-файлами, которые вам, возможно, потребуется обработать, я бы порекомендовал изучить инструменты, упомянутые в этом другом ответе :

  • exiftran : инструмент, используемый для преобразования изображений JPEG с цифровых камер, который может выполнять следующие действия:

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

  • JHead : Специально использоватьjheadс-autorotопцией, которая описывается как:

Используя тег «Ориентация» заголовка Exif, поверните изображение так, чтобы оно было в вертикальном положении. Программа «jpegtran» используется для выполнения вращения. Эта программа присутствует в большинстве дистрибутивов Linux. Для окон вам нужно получить его копию. После поворота тег ориентации заголовка Exif устанавливается на «1» (нормальная ориентация). Миниатюра Exif также поворачивается. Другие поля заголовка Exif, включая размеры, не затрагиваются, но высота / ширина JPEG отрегулированы.

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

Вот еще один инструмент, упомянутый в этой другой теме :

  • NConvert : NConvert - это многоформатный конвертер изображений командной строки для Win32, Linux, DOS, OS / 2 и других платформ. Детали быстрого запуска, кажется, здесь . И кажется, что если вы используетеnconvertс-jpegtransопцией, это именно то, что вы ищете. Но мне интересноесли это просто использует ту же самую библиотеку / базовую функциональностьjpegtranкак это другой ответ на этот вопрос рекомендует?

Наконец, возможно, использование инструмента ImageMagick convert с -auto-orientопцией будет работать для вас?

-auto-Ориент

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

Этот оператор считывает и сбрасывает настройку профиля изображения EXIF ​​«Ориентация», а затем выполняет соответствующий поворот на 90 градусов для изображения, чтобы ориентировать изображение для правильного просмотра.

Эта настройка профиля EXIF ​​обычно устанавливается с использованием датчика силы тяжести в цифровой камере, однако фотографии, сделанные непосредственно вниз или вверх, могут не иметь подходящего значения. Также изображения, для которых была исправлена ​​ориентация без сброса этого параметра, могут быть снова «скорректированы», что приведет к неверному результату. Если профиль EXIF ​​был ранее удален, оператор -auto-orient ничего не сделает.


Было бы идеально, если бы инструмент командной строки мог выполнять фактическое вращение пикселей на основе EXIF, а затем очищать информацию EXIF ​​впоследствии. Это возможно?
Жасмин Логн

1
@JasmineLognnes я фактически не использовал ни одного из этих инструментов сам, но этот вопрос является хорошим справочником для инструментов , которые я должен исследовать, но мне кажется , что exiftranи jpegtranможет быть то , что вы ищете. Я бы поэкспериментировал с вариантами обоих этих инструментов и посмотрел, что произойдет. Лучшее, что я могу сделать. Удачи!
JakeGould

1
Может показаться смешным, что система выбрала этот ответ в качестве контрольного теста в очереди просмотра LQ Post. Я проголосовал, чтобы не удалить его, кстати, и, видимо, это был правильный ответ. :-)
fixer1234

@ fixer1234 Да, я видел это сам, когда проверял сообщения низкого качества ранее. Веселое! Это могло быть вызвано количеством различных ссылок на различные пакеты, которые я рекомендую. Но эй! Я счастлив, что есть некоторый автоматизированный механизм контроля, который по крайней мере имеет компонент фильтрации человека.
JakeGould

2

Я обычно использую, jpegtranчтобы вращать фотографии:

jpegtran -copy all -rotate 90 -outfile newimg.jpg oldimg.jpg

90 поворачивается вправо, используйте 270 для левого (и 180 для флип).


2

При экспорте в GIMP вы можете нажать Advanced во всплывающем окне непосредственно перед сохранением, где вы можете отключить EXIF ​​и XMP.

Общий алгоритм для его написания

  • для каждого файла
  • сохранить значение из exiftool * | grep Orientation
  • удалить exif с помощью exiftran -ai *
  • использовать convert -rotateсо значением из шага 2

Это именно то, что я искал. Способ, который определяет, поворачивается ли изображение, и затем способ поворота, основанный на этом. Спасибо!
xarlymg89

0

Вы можете использовать Exiftool для удаления данных EXIF ​​из изображений JPEG.


Да, это здорово, но когда я потом редактирую изображения, добавляются новые заголовки EXIF.
Жасмин Логн

EXIFTool может удалить данные, но он не будет изменять, вращать или масштабировать изображение. Он просто сотрет эти данные, и JPEG будет отображаться в том формате, в котором он изначально существовал. Это полезно в некоторых случаях, но не в таком случае.
JakeGould
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.