Как автоматически поворачивать изображения, основываясь на данных exif

Когда я делаю снимки с помощью своей камеры (Olympus E-520), в данных EXIF ​​сохраняется ориентация.

Стандартный просмотрщик изображений в Ubuntu правильно отображает эти изображения. Средство просмотра Windows, однако, нет.

Есть ли способ действительно повернуть эти изображения (при необходимости в соответствии с EXIF) в пакете на Ubuntu? Например, с помощью инструмента ImageMagick?

5 ответов

Решение

exiftranи JHead ( jhead -autorot ) может сделать это. exiftran может сделать это без потерь, не уверен в jhead,

Инструмент преобразования ImageMagick имеет флаг -auto-orient, который должен выполнить работу.

#!/bin/bash

JHEAD=jhead
SED=sed
CONVERT=convert

for f in *.jpg
do
        orientation=$($JHEAD -v $f | $SED -nr 's:.*Orientation = ([0-9]+).*:\1:p')

        if [ -z $orientation ]
        then
                orientation=0
        fi

        if [ $orientation -gt 1 ]
        then
                echo Rotating $f...
                mv $f $f.bak
                $CONVERT -auto-orient $f.bak $f
        fi
done

Я собрал быстрый скрипт для перебора * .jpg в текущем каталоге. Вы можете легко изменить это, чтобы получить путь ($ 1) или что вам нужно.

С помощью ImageMagick вы также можете использовать mogrify для поворота файлов и записи повернутого изображения обратно в исходные имена файлов.

mogrify -auto-orient *.jpg

Вы можете использовать XnView для этого. Проверьте эти страницы для получения информации об использовании XnView для автоматического поворота в пакетном режиме:

В Windows вы можете сделать это с помощью IrfanView. Из раздела FAQ сайта IrfanView:

В: Как использовать JPG без потерь (Поворот, IPTC, Комментарий) в пакетном режиме?

A: Запустите окно миниатюр, откройте папку с JPG, выберите много JPG и посмотрите в меню миниатюр Файл для JPG Операции без потерь -> Преобразования без потерь с выбранными большими пальцами. Примечание. Параметр автоматического поворота работает только в том случае, если тег ориентации EXIF ​​сохранен правильно (не слева вверху).

Ответ @user7963, который можно использоватьexiftranэто правильно, но как нам это использовать? Вот что я нашел:

Протестировано на Ubuntu 20.04:

Установите его:

      sudo apt update
sudo apt install exiftran

Используй это:

Конвертируйте все изображения вdir_of_imagesавтоматически поворачиваться на месте в соответствии с их метаданными ориентации exif:

      cd path/to/dir_of_images
exiftran -ai *.jpg

Вот и все! Все*.jpgизображения теперь будут повернуты на месте!

Видетьman exiftranилиexiftran -hза помощью и подробностями.

Вот какие два варианта я использовал (-aи-i) иметь в виду:

       TRANSFORM OPTIONS
       -a     Automatic (using exif orientation tag).
       OTHER OPTIONS
       -i     Enable in-place editing of the images.  Exiftran allows 
              multiple input files then. You must specify either this 
              option or a output file with -o for all operations which 
              modify the  image (i.e.  everything but -d right now).
Другие вопросы по тегам