пятница, 2 сентября 2011 г.

Пакетная обработка фото с параметром EXIF с помощью Jhead

Если у вас фотоаппарат при фотографировании записывает параметр EXIF, то при обработке изображений фото которое вы сделали в вертикальном положении будет требовать пересохранить повернув его. Например Gimp при открытии такого фото сообщает: Согласно данным EXIF это изображение повёрнуто.

Если изображение не повернуть, то при обработке, например, при вставке водяного знака, на фото сделанные вертикально, знак ляжет как на горизонтальное фото. Поэтому, нужно изображение поворачивать (хоть в превью в Ubuntu вы видите его повернутым). Раньше мне приходилось каждое фото поворачивать в Gimp в ручную. Но когда у вас этих вертикальных большое кол-во ручная работа занимает много времени, железного терпения и усердия. В поисках решения по пакетной обработке я окунался в мировой океан сети с навигатором от Google)). 

В поисках я наткнулся на w3support, где обсуждалась данная проблема. Скрипт который там предоставлялся мне помог оптимизировать под мою Ubuntu один из модераторов forum.ubuntu.ru. Скрипт выглядит следующим образом:

#!/bin/bash
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
               convert $f -auto-orient $f
       fi
done
Сохраняем скрипт в Gedit. Теперь этот файл можно запускать, предварительно скопировав его в нужную директорию с вертикальными фото. После применения скрипта все фото в директории будут заменены с новыми параметрами. Для того чтобы скрипт работал, необходимо установить Jhead, для этого перейдите в Приложения - Центр приложений Ubuntu и введите в окно поиска jhead и установите. Подробнее о Jhead на сайте Ubuntu.