exiv2

Материал из Lblss.ru
Перейти к: навигация, поиск

Утилита командной строки exiv2 позволяет заглянуть в EXIF (метаданные) файлов изображений и, при необходимости, поправить их. Подробно об exiv2 можно почитать на офсайте. Там же можно найти несколько примеров использования.

Содержание

Корректировка времени создания файлов

Восстановить дату/время создания файла по EXIF-данным изображения, как это было на момент фотосъёмки? exiv2 работает довольно шустро, за 10 секунд обрабатывает порядка 400 файлов на P4. В директории со снимками выполняем:

$ exiv2 -T mv *.jpg

Изготовление превьюшек

Необходимо нагенерить гору превьюшек с максимальным размером 150 пикселов? Не вопрос. Ставим GraphicsMagick. Допустим, исходники (картинки с фотоаппарата) лежат в ~/src, а превьюшки будем класть в ~/dst под тем же именем. Тогда получается примерно так:

$ cd ~/src
$ find . -exec gm convert -resize 150x150 {} ~/dst{} \;

Если есть вложенные папки, допустим ~/src/1, ~/src/2, ~/src/3 и так далее, то необходимо создать структктуру ~/dst/1, ~/dst/2, ~/dst/3. Производительность на P4 порядка одного файла в секунду при исходниках в 1,5MB

Массовое удаление отдельных данных EXIF

Понты камеры прописалась в дескрипшне снимка. Потребовалось изгнать, ибо лезут куда не надо. Однострочный в принципе скрипт... для удобочитаемости разбил на строки.

cd /path/to/folder/with/problem/pictures
 
OIFS=$IFS
IFS=$"\n"
 
find . -type f | \
while read f
do 
    if [[ "x`exiv2 -p a $f 2>/dev/null | grep 'OLYMPUS DIGITAL CAMERA'`" != "x" ]]
    then 
        echo $f
        exiv2 -M"del Exif.Image.ImageDescription" $f
    fi
done
 
IFS=$OFS

Вообще то, в трех местах чистить надо:

 $ exiv2 -M"del Exif.Image.ImageDescription" -M"del Iptc.Application2.Caption" -M"del Xmp.dc.description" image.jpg


Имена затрагиваемых файлов печатаются в консоль.

Подправить дату/время съемки в метаданных

Например, дата/время на камере выставлены от фонаря, и чтобы привести к потребным значениям надо подвинуть на один месяц вперед и отмотать назад (к утру) на семь часов. После арифметики "плюс 31 день минус семь часов" оказывается равным +737 часов ровно (через двоеточие можно задать так же минуты и секунды). Команда такая:

 $ exiv2 -a +737 adjust image.jpg

Однако, оно делает правку только в секции Exif, не затрагивая секций Iptc и Xmp.

Персональные инструменты