[Из песочницы] ExifTool – швейцарский нож фотометаданных

Назваться любителем командной строки будет для меня как-то чересчур, скорее, я стал им добровольно-принудительно, т.к. после обновления OS X 10.7 на 10.8 перестала работать программа, которая до того вполне неплохо проставляла геотеги на отснятые фотографии. Здесь надо сделать отступление: на написание этой заметки меня сподвиг более или менее «соседний» материал под названием «Как сэкономить на фотоаппарате с GPS». В моём случае имеет место несколько менее извращённый подход к получению координат посещённых мест, а именно — запись трека GPS-навигатором, остальное же выполняется с помощью ExifTool.Пожалуй, можно опустить получение удобоваримого формата трека, т.к. это вряд ли сопоставимо с темой заметки, а вот проставление геотегов — одна из задач, которую ExifTool чудесно выполняет.

Итак, предположим, что у Вас есть набор снимков, GPS-трек, ExifTool и часы камеры и GPS-устройства были синхронизированы (или Вы знаете разницу во времени). В таком случае следующая команда удобно совершит все действия над файлами *.tif в текущем каталоге (папке):

exiftool -geotag ~/Documents/Travel/…/some_track.gpx *.tif N.B.: я использую запись «exiftool», т.к. в моём случае (OS X) так оно вызовется относительно правильно, для Windows желательно будет добавить расширение (с уважением, К.О.).И, к слову, создаст вдвое больше файлов, оставив рядом с каждым файл-оригинал *.tif_original. Это вполне удобно, пока Вы лишь экспериментируете, дабы не затереть существующий материал и не обременять себя дополнительным резервным копированием. Если же Вы хотите избежать такого действия — достаточно воспользоваться опцией -overwrite_original.

А если часы камеры и gps-приёмника рассинхронизированы? К примеру, в прошлом году я успешно забыл сменить летнее время на зимнее и пол-года у меня что-то было чуть-чуть не так… Опция -geosync позволяет задать эту разницу во времени.

exiftool -geosync=+1:00:00 -geotag ~/Documents/Travel/…/some_track.gpx *.tif Удобно? По-моему, относительно удобно. Лично мне тыкать мышью в поисках трек-файла часто отнимало больше времени, чем сразу прописать путь к нему.Бывает потребность в обратном: удалении геотегов. Это тоже элементарно:

exiftool -xmp: geotag= *.tiff Но давайте рассмотрим и другие аспекты применения ExifTool.Копирование EXIF-тегов Я использую RAW-конвертор RPP, у которого есть опция, позволяющая включить или выключить копирование EXIF-тегов. Иногда это действительно удобно, но иногда — очень даже лишнее. Зазевавшись однажды, я заметил недостающую информацию уже после того, как были сгенерированы и обработаны все *.tiff. Но оказалось, что этот вариант — не проблема. Решение элементарно как для одиночного файла: exiftool -TagsFromFile a.cr2 a.jpg Так и для нескольких файлов в папке (предполагается, что оригиналы и производные лежат «рядом»): exiftool -tagsfromfile %d%f.CRW -r -ext JPG dir Свалить в более или менее хронологическую кучу фотографии с разных камер Переименование осуществляется только на основе даты из EXIF, имя файла-оригинала удаляется: exiftool -d %Y%m%d-%H%M%S.%%e »-filename FILE_NAME.txt Дальнейший анализ легко выполняется в любимом табличном процессоре (хотя мой друг, поленившись, втянул всё это в SQL-базу, для него так было быстрее).Восстановить дату создания файла В ходе манипуляций ExifTool поменяет дату создания файла (что, в принципе, логично, т.к. файлы переписываются). Восстановить дату создания оригинала легко: exiftool »-filemodifydate

© Habrahabr.ru