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

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

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

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

4 ответа

Решение

Есть ли такая вещь, как простой редактор изображений для 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 ничего не сделает.

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

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

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

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

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

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

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

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