Как автоматически поворачивать изображения, основываясь на данных exif
Когда я делаю снимки с помощью своей камеры (Olympus E-520), в данных EXIF сохраняется ориентация.
Стандартный просмотрщик изображений в Ubuntu правильно отображает эти изображения. Средство просмотра Windows, однако, нет.
Есть ли способ действительно повернуть эти изображения (при необходимости в соответствии с EXIF) в пакете на Ubuntu? Например, с помощью инструмента ImageMagick?
5 ответов
Инструмент преобразования 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 для автоматического поворота в пакетном режиме:
- http://newsgroup.xnview.com/viewtopic.php?t=1420
- http://newsgroup.xnview.com/viewtopic.php?t=13424 (проверьте параметр "Следовать ориентации")
- http://graphicssoft.about.com/od/xnview/qt/batchresize.htm (отметьте опцию "Следовать ориентации")
В 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).