- ExifTool – швейцарский нож фотометаданных
- Редактирование exif информации в Mac Os
- exiftool — Консольная утилита для переименования фотографий
- Примеры команд:
- Теперь добавляем любой атрибут из списка из прошлой команды:
- Теперь про директории…
- Условия if else?
- А если файлы повторяются оно их заменит или что?
- Теперь сортируем по папкам с датой
- Installing ExifTool
- Windows
- Stand-Alone Executable
- Full Perl Distribution
- MacOS
- MacOS Package
- Full Perl Distribution
- Uninstalling
- Unix Platforms
ExifTool – швейцарский нож фотометаданных
Назваться любителем командной строки будет для меня как-то чересчур, скорее, я стал им добровольно-принудительно, т.к. после обновления OS X 10.7 на 10.8 перестала работать программа, которая до того вполне неплохо проставляла геотеги на отснятые фотографии. Здесь надо сделать отступление: на написание этой заметки меня сподвиг более или менее «соседний» материал под названием «Как сэкономить на фотоаппарате с GPS». В моём случае имеет место несколько менее извращённый подход к получению координат посещённых мест, а именно — запись трека GPS-навигатором, остальное же выполняется с помощью ExifTool.
Пожалуй, можно опустить получение удобоваримого формата трека, т.к. это вряд ли сопоставимо с темой заметки, а вот проставление геотегов — одна из задач, которую ExifTool чудесно выполняет.
Итак, предположим, что у Вас есть набор снимков, GPS-трек, ExifTool и часы камеры и GPS-устройства были синхронизированы (или Вы знаете разницу во времени). В таком случае следующая команда удобно совершит все действия над файлами *.tif в текущем каталоге (папке):
N.B.: я использую запись «exiftool», т.к. в моём случае (OS X) так оно вызовется относительно правильно, для Windows желательно будет добавить расширение (с уважением, К.О.).
И, к слову, создаст вдвое больше файлов, оставив рядом с каждым файл-оригинал *.tif_original. Это вполне удобно, пока Вы лишь экспериментируете, дабы не затереть существующий материал и не обременять себя дополнительным резервным копированием. Если же Вы хотите избежать такого действия — достаточно воспользоваться опцией -overwrite_original.
А если часы камеры и gps-приёмника рассинхронизированы? К примеру, в прошлом году я успешно забыл сменить летнее время на зимнее и пол-года у меня что-то было чуть-чуть не так… Опция -geosync позволяет задать эту разницу во времени.
Удобно? По-моему, относительно удобно. Лично мне тыкать мышью в поисках трек-файла часто отнимало больше времени, чем сразу прописать путь к нему.
Бывает потребность в обратном: удалении геотегов. Это тоже элементарно:
Но давайте рассмотрим и другие аспекты применения ExifTool.
Копирование EXIF-тегов
Я использую RAW-конвертор RPP, у которого есть опция, позволяющая включить или выключить копирование EXIF-тегов. Иногда это действительно удобно, но иногда — очень даже лишнее. Зазевавшись однажды, я заметил недостающую информацию уже после того, как были сгенерированы и обработаны все *.tiff. Но оказалось, что этот вариант — не проблема. Решение элементарно как для одиночного файла:
Так и для нескольких файлов в папке (предполагается, что оригиналы и производные лежат «рядом»):
Свалить в более или менее хронологическую кучу фотографии с разных камер
Переименование осуществляется только на основе даты из EXIF, имя файла-оригинала удаляется:
И без удаления имени оригинала:
N.B.: желательно, чтобы часы камер были предварительно синхронизированы (с уважением, К.О.).
В метаданные можно вписать Ваши титулы и email-ы
Вы же хотите, чтобы Вас потом можно было найти?
Извлечь определённые данные (на примере фокусного расстояния)
В ходе одной дискуссии у меня возникла необходимость ответить на вопрос о том, каковы наиболее популярные (у меня) фокусные расстояния. Но надо откуда-то взять исходные данные. Что ж, можно выгрузить информацию в текстовый файл, например, в формате :
Дальнейший анализ легко выполняется в любимом табличном процессоре (хотя мой друг, поленившись, втянул всё это в SQL-базу, для него так было быстрее).
Восстановить дату создания файла
В ходе манипуляций ExifTool поменяет дату создания файла (что, в принципе, логично, т.к. файлы переписываются). Восстановить дату создания оригинала легко:
Извлечение встроенных в RAW JPEG-ов
Иногда бывает полезно. Впрочем, это элементарно:
Добавить в EXIF данные о старой оптике
Имея в наличии арсенал старой оптики и всевозможные переходники для Sony Nex, у меня также есть желание знать, каким объективом я снимал. Это тоже вполне возможно:
На известном форуме любителей MF-оптики предлагается более изящный вариант, который требует создания файла-описания для каждой линзы, по виду:
После чего его применение будет несколько более тривиальным:
N.B.: последняя строка в файле-описании необязательна, т.к. она определяет запись «рабочего значения» диафрагмы, а оно, во-первых, может быть разным, а во-вторых, не всех действительно интересует. Ведь тогда надо его не только запомнить, но и проставить отдельно для всех фотографий…
Надеюсь, кому-то эта информация покажется интересной и/или пригодится, хотя она является, по большому счёту, выдержками из документации ExifTool. Однако, не всегда есть возможность читать всю документацию, потому «готовый рецепт» может пригодится. По крайней мере, я так полагаю. Удачи!
UPD1. В комментариях (здесь) советуют альтернативу для некоторых операций — я пока что не смотрел, но вдруг.
UPD2. А ещё — дельное напоминание о существовании Windows-GUI для ExifTool.
Источник
Редактирование exif информации в Mac Os
Привет камрады! В своем первом посте хочу рассказать о своем опыте редактирования метаданных exif изображений jpeg полученных с камеры и правленных в Photoshop.
Дело было так: имелись фотографии сделанные камерой на телефоне, неважного качества. Надо было их почистить, подогнать размер, будто они сделаны фотокамерой, не оставив следов. Вся информация о снимках хранится в EXIF (Exchangeable Image File Format) стандарт, хранящий техническую информацию об изображении, методах его получения, авторстве и т.д. Посмотреть эту информацию можно многими способами, и просто выбрав свойства файла и специальными программами. Но с редактированием дела обстоят сложнее.
После долгих поисков бесплатной программы с GUI, пришлось смириться с отсутсвием таковой и обратить внимание на command-line приложение ExifTool by Phil Harvey Версии есть для всех платформ, устанавливаем необходимую.
Вобщем, долгое и вдумчивое чтения мануала дало понять, что информация франится в тэгах со значением.
Напиример, дата создания файла:
CreateDate: 2010:11:01 10:59:08
Дата правки файла:
FileModifyDate: 2010:11:04 01:10:33
Производитель фотокамеры:
Make: Canon
Модель фотокамеры:
Model: Canon Digital IXUS 970 IS
Всю информацию можно получить набрав в консоли:
exiftool -s IMG_0001.jpg
где IMG_0001.jpg имя редактируемого файла
-s позволяет просмотреть тэги в формате, необходимом для редактирования, т.е убирает пробелы и другие ненужные символы.
Задача стояла убрать все следы работы Photoshop, не стал париться и искать нужные тэги, а просто полностью очистил exif информацию:
exiftool -all= IMG_0001.jpg
Кому нужно- ищите нужный тэг и вписываете необходимую информацию.
Например, инфомация о редакторе:
Software: Adobe Photoshop CS4 Macintosh
Чтобы изменить значение, пишем:
exiftool -Software=«Picasa» IMG_0001.jpg
Если хотите убрать тэг, то ставите пробел после знака «=»
exiftool -Software= IMG_0001.jpg
Далее добавляем производителя фотокамеры:
exiftool -Make=«Canon» IMG_0001.jpg
exiftool -Model=«Canon Digital IXUS 970 IS» IMG_0001.jpg
exiftool -CreateDate=«2010:11:01 11:01:23» IMG_0001.jpg
exiftool -FileModifyDate=«2010:11:01 11:08:12» IMG_0001.jpg
И так далее. Нужные тэги можно подсмотреть в неочищенном файле.
Надеюсь, информация также будет полезна и для пользователей Linux, Windows версий программы.
До новых встречь.
Источник
exiftool — Консольная утилита для переименования фотографий
Сегодня рассмотрим как массово переименовывать файлы с помощью exiftool. Эта cli утилита считывает все метаданные фото или видео в том числе и exif данные.
Задача была переименовать все фото и видео файлы где бы они не находились в определенной структуре в определенной папке.
Итак как установить exiftool на mac os с помощью командной строки?
Теперь заходим в папку где лежат все наши фото и видео которые надо переименовать.
Примеры команд:
Вывести всю информацию о файле img.jpg
В виде атрибутов и значений
В виде только значений
Теперь добавляем любой атрибут из списка из прошлой команды:
Выведем дату создания файла из exif атрибута:
Или выведем дату создания файла:
Выведем имя файла и обе даты:
По умолчанию мы увидим атрибут только в том случае если он заполнен, если надо показать содержимое в любом случае дописываем в команду -f это выведет все данные даже если какой-то атрибут пустой.
Теперь про директории…
Выведем имя, и обе даты создания для всех файлов в текущей дитектории:
или в определенной директории:
Если нужно сканировать еще и подпапки добавляем -r рекурсивно.
А теперь давайте изменим формат даты. Для этого добавляем -d и далее формат
Если мы хотим вывести информацию в произвольном формате, можно использовать -p ‘какой-то текст из файла $FileName’ где в название переменной это атрибуты
Условия if else?
Да, тут есть и условия -if ‘какое-то условие’ тогда обработка этого файла выполняется, в противном случае не выполняется.
Какие свойства имеются:
not — отрицание например ‘not $CreateDate’
or — или
and — и
eq — equivalent что-то типа =
Если хочется перенести все файлы из всех подпапок в текущую папку, делаем так:
А если файлы повторяются оно их заменит или что?
Сделаем если будут файлы повторяться чтобы добавлялось число перед расширением.
%f это название файла без расширения
%-3c это добавляет -001 если с таким же именем уже есть. 3 означает сколько символов. По сути можно написать только %c
%e это расширение
Заметка: это не переносит файл а копирует его.
Если хотим отсортировать по полной дате:
Теперь сортируем по папкам с датой
Если хотим отсортировать по папкам по годам, месяцам и тд, то добавляем вывод даты в формате который хотим.
Можно и само название файла поменять под дату, но надо не забыть добавить в конце формат файла %e
Но что будет с файлами где $DateTimeOriginal пустое — ничего. Покажет ошибку для них. В таком случае лучше всего добавить проверку на существование.
А вот с проверкой но с оригинальным названием файла:
Все эти команды переносят файлы, а как же скопировать файл а не переносить? добавляем -o .
Добавляем так же числовой номер если такой файл в папке существует:
%f это название файла без расширения
%-3c это добавляет -001 если с таким же именем уже есть
%e это расширение
Итак что мы узнали? Как работать с файлами, как читать мета данные, как переименовывать файлы, перемещать и многое другое.
Параметры что мы узнали:
-s короткое названия атрибутов
-s -S без названия атрибутов только значение атрибута
-f показать значение даже если его нет
-r рекурсивно, считывать и файлы из подпапок тоже
-d задать формат даты в которой выводить
-p вывод информации в произвольной форме
-if условие при котором выполнять манипуляции с файлом
Ух, статья получилась слишком длинная, но зато много полезного и нового.
В следующей статье я покажу пример уже готовых команд как организовать фото и видео файлы по годам, месяцам и дням для медиатеки на Mac OS или NAS сервере.
Источник
Installing ExifTool
Note: ExifTool does not need to be installed to run. Just download and extract either the full Perl distribution on Mac/Linux, or the Windows EXE version on Windows, and run it directly. [But note that if you move the Perl «exiftool» application, you must also move its «lib» directory to the same location. This doesn’t apply to the Windows version which unpacks the libraries into a temporary directory.]
However, the benefits of installation are:
- Makes ExifTool available to all users.
- Saves typing on the command line (by placing «exiftool» in your PATH).
- Installs the ExifTool documentation and API libraries (full Perl version only).
See the appropriate section below with instructions for installing or uninstalling ExifTool on your specific platform:
Also see these instructions for help running ExifTool.
Windows
In Windows, there is a choice of two different versions of ExifTool to install. The Perl distribution requires Perl to be installed on your system. (A good, free Perl interpreter can be downloaded from activeperl.com.)
If you don’t already have Perl, it is easier to install the stand-alone ExifTool executable, but note that the stand-alone version doesn’t include the HTML documentation or some other files of the full distribution.
Stand-Alone Executable
- Download the Windows Executable from the ExifTool home page.
(The file you download should be named » exiftool-12.32.zip «.) - Extract » exiftool(-k).exe « from the » .zip » file, and place it on your Desktop.
(Double-click on » exiftool-12.32.zip » to open the archive, then drag » exiftool(-k).exe » to your Desktop.)
You can now double-click on » exiftool(-k).exe » to read the application documentation, or drag-and-drop files and folders to run exiftool on selected files. To install exiftool for use from the command line, continue with the following steps:
- Rename » exiftool(-k).exe » to » exiftool.exe «.
(or » exiftool(-k) » to » exiftool » if file name extensions are hidden on your system) - Move » exiftool.exe « to the » C:\WINDOWS » directory (or any other directory in your PATH).
You can now run exiftool by typing » exiftool » at the command prompt. (To get to the command prompt, select «Run. » from the Windows «Start» menu, then type » cmd » and press Return.)
- In Windows 7, running exiftool may require administrator privileges. If necessary, this may be enabled by right clicking on exiftool, then selecting «Run this program as administrator» from the Compatibility settings.
- Windows 10 users have sometimes reported that exiftool hangs when run. This may be due to Windows Defender blocking or slowing down exiftool. To solve this, either disable Windows Defender or add an exclusion for exiftool (but note that exiftool may still run more slowly if you just add an exclusion).
- Occasionally users have reported that exiftool gives errors when running this version for this first time. It is possible this may happen if the installation process gets interrupted. In this case, follow the Uninstalling instructions below then re-install exiftool. Be sure that you have sufficient disk space in your TEMP directory for exiftool to unpack about 12 MB of temporary files — these are the Perl libraries used by the exiftool application which are unpacked the first time exiftool is run.
- Drag » exiftool(-k).exe » (or » C:\WINDOWS\exiftool.exe «) into the Recycle bin.
- Drag the directory » par-XXX » from your temporary directory to the Recycle bin. Here » XXX » is your user name (in ASCII-hex for ExifTool 10.21 or later) and the location of the temporary directory depends on the value of the TEMP environment variable (typically » C:\Documents and Settings\USER\Local Settings\Temp » for Windows XP, or » C:\Users\USER\AppData\Local\Temp » for Windows 7 or later). Alternately, this command may be used to delete these files:
Full Perl Distribution
You must have Perl installed to use this version. (A free version of Perl can be downloaded from activeperl.com.)
- Download the Image-ExifTool distribution from the ExifTool home page
(The file you download should be named » Image-ExifTool-12.32.tar.gz «.) - Extract the ExifTool files from the archive.
(The archive is a gzipped tar file, and can be opened with various Windows utilities, including WinZip.) - Rename » exiftool » to » exiftool.pl « in the exiftool distribution.
- Move » exiftool.pl « and the » lib « directory from the exiftool distribution to » C:\WINDOWS » (or any other directory in your PATH).
Now, if you have made the proper Windows associations for the » .pl » extension (an option in the ActivePerl installation), you can run exiftool by typing » exiftool.pl » at the » cmd.exe » prompt. Otherwise you should type » perl c:\windows\exiftool.pl «.
- Drag » C:\WINDOWS\exiftool.pl » and » C:\WINDOWS\lib » into the Recycle bin. You should first confirm that » C:\WINDOWS\lib » contains only the » File » and » Image » sub-directories. Do not delete it if it contains anything else.
MacOS
If you have installed the BSDSDK package from the Xcode Developer Tools (ie. if you have the » make » utility), you should follow the install procedure for Unix platforms in the next section instead of the steps below. The Unix install has the advantage of making the ExifTool library available for your Perl scripts, as well as installing the man pages and POD documentation.
Otherwise, you have a choice of two packages to install: The MacOS package, or the full Perl distribution. Both of the procedures below install the ExifTool files in the same location. Installing from the MacOS package is easier, but the full distribution includes HTML documentation and some other files not included in the MacOS package. Both versions run natively on PPC and Intel Macs.
MacOS Package
- Download the ExifTool MacOS Package from the ExifTool home page.
(The file you download should be named » ExifTool-12.32.dmg «.) - Install as a normal MacOS package.
(Open the disk image, double-click on the install package, and follow the instructions. See the second item in the Notes section below if you are stopped with an «unidentified developer» message.)
You can now run exiftool by typing » exiftool » in a Terminal window.
If this doesn’t work, then it is likely you have an older version of MacOS for which /usr/local/bin isn’t in the default PATH. To fix this, add the following line to your
/.profile settings using a text editor:
Full Perl Distribution
- Download the Image-ExifTool distribution from the ExifTool home page to your Desktop.
(The file you download should be named » Image-ExifTool-12.32.tar.gz «.) - Launch the Terminal application from the Utilities folder in your Applications folder.
- In the Terminal window, type the following: (Note: The last step above will require you to enter your password.)
You can now run exiftool by typing » exiftool » in a Terminal window.
- Both MacOS installation techniques outlined above place exiftool and its lib directory in /usr/local/bin, while the standard Unix » make install » described below puts » exiftool » in /usr/local/bin and the individual libraries in /Library/Perl/#.#.#, where «#.#.#» is your Perl version. If both sets of libraries exist, /usr/local/bin/lib takes precedence for exiftool, but /Library/Perl/#.#.# is the default for any other Perl scripts.
- In MacOS 10.8 or later, you may see this message when you try to open the install package:
«ExifTool-12.32.pkg» can’t be opened because it is from an unidentified developer.
Uninstalling
- Launch the «Terminal» application from the Applications Utilities folder.
- Type » open /usr/local/bin » (without the quotes) in the Terminal window, then press RETURN. (This opens a folder that you normally can’t access from MacOS.)
- Drag » exiftool » and » lib » into the trash from the » bin » folder you opened. You should first confirm that » lib » contains only two sub-folders: » File » and » Image «. If it contains anything else, don’t trash it because you have the wrong » lib » folder.
Unix Platforms
- Download the Image-ExifTool distribution from the ExifTool home page
(The file you download should be named » Image-ExifTool-12.32.tar.gz «.) - Unpack the distribution and make it your current directory by typing: (At this point you may run exiftool by typing » ./exiftool «.)
- Test and install ExifTool by typing: (Note: The » make test » step is not required, but useful because it runs a full suite of tests to verify that ExifTool is working properly on your system. The » sudo make install » command requires that you have su access, and will prompt for your password. This will make ExifTool and its documentation accessible to all users on your system. If you don’t have su access, you can run ExifTool in your own account by moving » exiftool » and its » lib » directory to any convenient location, preferably somewhere in your PATH.)
You can now run exiftool by typing » exiftool «. Also, you can consult the ExifTool documentation with commands like:
Источник