29

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

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

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

4 ответа4

35

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

12

Инструмент преобразования 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) или все, что вам нужно.

2

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

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

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

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

1

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

mogrify -auto-orient *.jpg

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .