ExifTool


Описание ExifTool

ExifTool — это независимая от платформы библиотека Perl, а также приложение командной строки для чтения, записи и редактирования метаинформации в самых разных файлах. ExifTool поддерживает множество различных форматов метаданных, включая EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP и ID3, Lyrics3, а также примечания производителя многих цифровых камер Canon, Casio, DJI, FLIR, FujiFilm, GE, GoPro, HP, JVC/Victor, Kodak, Leaf, Minolta/Konica-Minolta, Motorola, Nikon, Nintendo, Olympus/Epson, Panasonic/Leica, Pentax/Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma/Foveon и Sony.

ExifTool также доступен как автономный исполняемый файл Windows и пакет MacOS: (Обратите внимание, что эти версии содержат только исполняемый файл и не включают документацию HTML или другие файлы полного распространяемого пакета).

Характеристики:

  • Мощный, быстрый, гибкий и настраиваемый
  • Поддерживает большое количество различных форматов файлов
  • Читает EXIF, GPS, IPTC, XMP, JFIF, MakerNotes, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP, ID3, Lyrics3 и другие…
  • Записывает EXIF, GPS, IPTC, XMP, JFIF, MakerNotes, GeoTIFF, ICC Profile, Photoshop IRB, AFCP и многое другое…
  • Читает и пишет примечания производителя многих цифровых фотоаппаратов
  • Читает синхронизированные метаданные (например, GPS-трек) из видео MOV/MP4/M2TS/AVI
  • Многочисленные параметры форматирования вывода (включая разделение табуляцией, HTML, XML и JSON)
  • Многоязычный вывод (cs, de, en, en-ca, en-gb, es, fi, fr, it, ja, ko, nl, pl, ru, sv, tr, zh-cn или zh-tw)
  • Геотеги изображения из файлов журнала треков GPS (с коррекцией временного дрейфа!)
  • Создаёт журналы треков из изображений с геотегами
  • Сдвигает значения даты и времени для исправления отметок времени в изображениях
  • Переименовывает файлы и организует их в каталогах (по дате или любой другой метаинформации)
  • Извлекает миниатюрные изображения, изображения предварительного просмотра и большие изображения JPEG из файлов RAW.
  • Копирует метаинформацию между файлами (даже файлами разного формата)
  • Читает/записывает структурированную информацию XMP
  • Удаляет метаинформацию по отдельности, группами или вместе.
  • Устанавливает дату изменения файла (и дату создания в Mac и Windows) из информации EXIF
  • Поддерживает теги на альтернативном языке в XMP, PNG, ID3, Font, QuickTime, ICC Profile, информации MIE и MXF
  • Обрабатывает целые деревья каталогов
  • Создаёт текстовый выходной файл для каждого файла изображения
  • Создаёт файлы двоичного формата (MIE, EXV), содержащие только метаданные, для резервного копирования метаданных
  • Автоматически создаёт резервную копию исходного изображения при записи
  • Организует вывод в группы
  • Условно обрабатывает файлы на основе значения любой метаинформации
  • Возможность добавления настраиваемых пользовательских тегов
  • Поддержка рекомендаций MWG (Рабочая группа по метаданным)
  • Распознает тысячи разных тегов
  • Протестировано с изображениями тысяч различных моделей камер
  • Расширенный подробный вывод шестнадцатеричного дампа на основе HTML

Домашняя страница: https://exiftool.org/

Автор: Phil Harvey

Лицензия: Это бесплатное программное обеспечение; вы можете распространять и/или изменять его на тех же условиях, что и сам Perl.

Справка по ExifTool

Синтаксис:

exiftool [ОПЦИИ] ФАЙЛ

Опции:

Операции с тегами

         -TAG или --TAG                    Извлекает или исключает указанный тег
         -TAG[+-^]=[ЗНАЧЕНИЕ]              Записывает для тега новое значение
         -TAG[+-]<=ФАЙЛ_ДАННЫХ             Записывает значение тега из содержимого файла
         -TAG[+-]<SRCTAG                   Копирует значение тега (смотрите -tagsFromFile)

         -tagsFromFile ИСХ_ФАЙЛ            Копирует значение тега из файла
         -x TAG      (-exclude)            Исключает указанные тег

Форматирование текста ввода-вывода

         -args       (-argFormat)          Форматировать метаданные как аргументы exiftool
         -b          (-binary)             Вывод метаданных в двоичном формате
         -c FMT      (-coordFormat)        Установит формат координат GPS
         -charset [[TYPE=]КОДИРОВКА]       Указать кодировку для специальных символов
         -csv[[+]=ФАЙЛ_CSV]                Экспорт/импорт тегов в формате CSV
         -d FMT      (-dateFormat)         Установить формат для значений даты/времени
         -D          (-decimal)            Показывать номера идентификаторов тегов в десятичном формате
         -E,-ex,-ec  (-escape(HTML|XML|C)) Символы для экранирования выходных тегов для HTML, XML или C
         -f          (-forcePrint)         Принудительная печать всех указанных тегов
         -g[ЧИСЛО...]  (-groupHeadings)    Организовать вывод по группе тегов
         -G[ЧИСЛО...]  (-groupNames)       Распечатать название группы для каждого тега
         -h          (-htmlFormat)         Использовать форматирование HTML для вывода
         -H          (-hex)                Показывать номера идентификаторов тегов в шестнадцатеричном формате
         -htmlDump[СМЕЩЕНИЕ]               Создать бинарный дамп в формате HTML
         -j[[+]=ФАЙЛ_JSON] (-json)         Экспорт/импорт тегов в формате JSON
         -l          (-long)               Использовать длинный двухстрочный формат вывода
         -L          (-latin)              Использовать кодировку Windows Latin1
         -lang [ЯЗЫК]                      Установить текущий язык
         -listItem ИНДЕКС                  Извлечь определённый элемент из списка
         -n          (--printConv)         Без конвертации для печати
         -p ФОРМАТ_ФАЙЛА  (-printFormat)   Вывод на печать в указанном формате
         -php                              Экспорт тегов в виде массива PHP
         -s[ЧИСЛО]     (-short)            Короткий выходной формат
         -S          (-veryShort)          Очень короткий выходной формат
         -sep СТРОКА    (-separator)       Установить разделительную строку для элементов списка
         -sort                             Сортировать вывод по алфавиту
         -struct                           Включить вывод структурированной информации
         -t          (-tab)                Вывод в формате списка с разделителями табуляции
         -T          (-table)              Вывод в табличном формате
         -v[ЧИСЛО]     (-verbose)          Печатать подробные сообщения
         -w[+|!] РАСШ (-textOut)           Записывать (или перезаписывать!) выходные текстовые файлы
         -W[+|!] FMT (-tagOut)             Написать выходной текстовый файл для каждого тега
         -Wext РАСШ   (-tagOutExt)         Записывать только определённые типы файлов с -W
         -X          (-xmlFormat)          Использовать выходной формат RDF/XML

Контроль обработки

         -a          (-duplicates)         Разрешить извлечение повторяющихся тегов
         -e          (--composite)         Не создавать составные теги
         -ee         (-extractEmbedded)    Извлечь информацию из встроенных файлов
         -ext[+] РАСШ (-extension)         Обрабатывать файлы с указанным расширением
         -F[СМЕЩЕНИЕ]  (-fixBase)          Исправить основание для смещения заметок производителя
         -fast[ЧИСЛО]                      Увеличить скорость при извлечении метаданных
         -fileOrder[ЧИСЛО] [-]TAG          Установить порядок обработки файлов
         -i ДИРЕКТОРИЯ      (-ignore)      Игнорировать указанное имя каталога
         -if[ЧИСЛО] ВЫРАЖЕНИЕ              Обрабатывать файлы по условию
         -m          (-ignoreMinorErrors)  Игнорировать мелкие ошибки и предупреждения
         -o ФАЙЛ_ВЫВОДА  (-out)            Установить выходной файл или имя каталога
         -overwrite_original               Перезаписать оригинал, переименовав tmp файл
         -overwrite_original_in_place      Перезаписать оригинал, скопировав файл tmp
         -P          (-preserve)           Сохранить дату/время изменения файла
         -password ПАРОЛЬ                  Пароль для обработки защищенных файлов
         -progress[:[ЗАГОЛОВОК]]           Показать счетчик прогресса файла
         -q          (-quiet)              Тихая обработка
         -r[.]       (-recurse)            Рекурсивно обрабатывать подкаталоги
         -scanForXMP                       Сканирование методом грубой силы XMP
         -u          (-unknown)            Извлечь неизвестные теги
         -U          (-unknown2)           Извлечь также неизвестные двоичные теги
         -wm РЕЖИМ    (-writeMode)         Установить режим для написания/создания тегов
         -z          (-zip)                Чтение/запись сжатой информации

Другие опции

         -@ ФАЙЛ_АРГ                       Прочитать аргументы командной строки из файла
         -k          (-pause)              Пауза перед завершением
         -list[w|f|wf|g[ЧИСЛО]|d|x]        Список различных возможностей exiftool
         -ver                              Распечатать номер версии exiftool
         --                                Конец опций в командной строке

Специальные функции

         -geotag TRK_ФАЙЛ                  Изображения с геотегами из указанного журнала GPS
         -globalTimeShift СМЕЩЕНИЕ         Сдвинуть все форматированные значения даты/времени
         -use МОДУЛЬ                       Добавить функции из подключаемого модуля

Утилиты

         -delete_original[!]               Удалить резервные копии «_original»
         -restore_original                 Восстановление из резервных копий «_original»

Продвинутые опции

         -api ОПЦИЯ[[^]=[ЗНАЧЕНИЕ]]        Устанавливает опции ExifTool API
         -common_args                      Устанавливает общие опции
         -config КОНФ_ФАЙЛ                 Использовать этот файл конфигурации
         -echo[ЧИСЛО] ТЕКСТ                Echo (вывод) текста в stdout (стандартный вывод) или stderr (вывод ошибок)
         -efile[ЧИСЛО][!] ФАЙЛ_ОШИБ        Сохранять имена файлов с ошибками
         -execute[ЧИСЛО]                   Выполнять несколько команд в одной строке
         -srcfile FMT                      Обработать другой исходный файл
         -stay_open ФЛАГ                   Продолжайте читать -@ ФАЙЛ_АРГ даже после EOF
         -userParam ПАРАМЕТР[[^]=[ЗНАЧЕНИЕ]]      Установить пользовательский параметр (API UserParam opt)

Руководство по ExifTool

ИМЯ

exiftool — чтение и запись метаинформации в файлы.


СИНОПСИС

Чтение

exiftool [ОПЦИИ] [-TAG...] [--TAG...] ФАЙЛ...

Запись

exiftool [ОПЦИИ] -TAG[+-<]=[ЗНАЧЕНИЕ]... ФАЙЛ...

Копирование

exiftool [ОПЦИИ] -tagsFromFile ИСХОДНЫЙ_ФАЙЛ [-ИСХОДОНЫЙ_ТЕГ[>КОНЕЧНЫЙ_ТЕГ]...] ФАЙЛ...

Прочее

exiftool [ -ver | -list[w|f|r|wf|g[NUM]|d|x] ]

ОПИСАНИЕ

Интерфейс командной строки для Image::ExifTool, используемый для чтения и записи метаинформации в файлы различных типов. ФАЙЛ — это одно или несколько имён исходных файлов, имён каталогов или «-» для стандартного ввода. Метаданные считываются из исходных файлов и выводятся в читаемой форме на консоль (или записываются в выходные текстовые файлы с помощью -w).

Для записи или удаления метаданных значения тегов назначаются с помощью параметров -TAG=[ЗНАЧЕНИЕ] и/или опций -geotag, -csv= или -json=. Для копирования или перемещения метаданных используется функция -tagsFromFile. По умолчанию исходные файлы сохраняются с добавлением "_original" к их именам — убедитесь, что новые файлы в порядке, прежде чем стирать оригиналы. В режиме записи exiftool игнорирует любые параметры чтения.

Примечание. Если ФАЙЛ — это имя каталога, то обрабатываются только поддерживаемые типы файлов в каталоге (в режиме записи обрабатываются только типы с возможностью записи). Однако файлы можно указывать по имени или использовать опцию -ext для принудительной обработки файлов с любым расширением. Также обрабатываются скрытые файлы в каталоге. Добавление параметра -r вызывает рекурсивную обработку подкаталогов, но подкаталоги с именами, начинающимися с "." пропускаются, если только не используется -r. (название опции с точкой).

Ниже приведён список типов файлов и форматов метаинформации, которые в настоящее время поддерживает ExifTool (r = чтение, w = запись, c = создание):

Поддерживаемые типы файлов

ExifTool может читать, записывать и/или создавать файлы в следующих форматах. Также перечислены уровни поддержки EXIF, IPTC, XMP, ICC_Profile и других типов метаданных для каждого формата файла.

Тип файла Поддержка Описание EXIF IPTC XMP ICC1 Прочее
360 R/W Видео GoPro 360 (на основе QuickTime) R/W3 R/W3 R/W/C - R/W/C QuickTime, R GoPro
3FR R Hasselblad RAW (на основе TIFF) R R R R -
3G2, 3GP2 R/W 3rd Gen. Partnership Project 2 a/v (на основе QuickTime) R/W3 R/W3 R/W/C - R/W/C QuickTime
3GP, 3GPP R/W 3rd Gen. Partnership Project a/v (на основе QuickTime) R/W3 R/W3 R/W/C - R/W/C QuickTime
A R Архив кода статической библиотеки Unix - - - - EXE
AA R Аудиокнига Audible - - - - Audible
AAE R Информация редактирования Apple (на основе XML PLIST) - - - - PLIST
AAX R/W Улучшенная аудиокнига Audible (на основе QuickTime) R/W3 R/W3 R/W/C - R/W/C QuickTime
ACR R American College of Radiology ACR-NEMA (похоже на DICOM) - - - - DICOM
AFM, ACFM, AMFM R Adobe [Composite/Multiple Master] Font Metrics - - - - Font
AI, AIT R/W Adobe Illustrator [шаблон] (PS или PDF) R/W/C4 R/W/C4 R/W/C5 R/W/C4 R/W/C PDF PostScript, R Photoshop
AIFF, AIF, AIFC R Audio Interchange File Format [сжатый] - - - - AIFF ID3 Lyrics3
APE R Monkey's Audio - - - - APE ID3 Lyrics3
ARQ R/W Sony Alpha Pixel-Shift RAW (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W Sony SonyIDC
ARW R/W Sony Alpha RAW (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W Sony SonyIDC
ASF R Microsoft Advanced Systems Format - - R - ASF
AVI R Audio Video Interleaved (на основе RIFF) R3 - R - RIFF
AVIF R/W AV1 Image File Format (на основе QuickTime) R/W/C - R/W/C R/W R/W QuickTime
BMP, DIB R Windows BitMaP / Device Independent Bitmap - - - - BMP
BPG R Better Portable Graphics R - R R BPG
BTF R BigTIFF (64-bit Tagged Image File Format) R R R R -
CHM R Microsoft Compiled HTML format - - - - EXE
COS R Capture One Settings (XML-based) - - - - R XML
CR2 R/W Canon RAW 2 (на основе TIFF) (CR2 spec) R/W/C R/W/C R/W/C R/W/C R/W Canon, R/W/C CanonVRD2
CR3 R/W Canon RAW 3 (на основе QuickTime) (CR3 spec) R/W/C - R/W/C - R/W Canon QuickTime, R/W/C CanonVRD2
CRM R/W Canon RAW Movie (на основе QuickTime) R/W/C - R/W/C - R/W Canon QuickTime
CRW, CIFF R/W Canon RAW Camera Image File Format (CRW spec) - - R/W/C - R/W CanonRaw, R/W/C CanonVRD2
CS1 R/W Sinar CaptureShop 1-shot RAW (на основе PSD) R/W/C R/W/C R/W/C R/W/C Photoshop
CSV R Значения, разделенные запятыми - - - - Text
CZI R Zeiss Integrated Software RAW (ZISRAW) - - - - ZISRAW, R XML
DCM, DC3, DIC, DICM R DICOM - Цифровые изображения и коммуникации в медицине - - - - DICOM
DCP R/W Профиль камеры DNG (похоже на DNG) R/W/C R/W/C R/W/C R/W/C -
DCR R Kodak Digital Camera RAW (на основе TIFF) R R R R -
DFONT R Macintosh Data Fork Font - - - - Font
DIVX R Медиа формат DivX (на основе ASF) - - R - ASF
DJVU, DJV R Изображения DjVu (похож на AIFF) - - R - DJVU
DNG R/W Digital Negative (на основе TIFF) R/W/C R/W/C R/W/C R/W/C -
DOC, DOT R Microsoft Word Document/Template (похоже на FPX) - - R R FlashPix
DOCX, DOCM R Office Open XML документ [с включёнными макросами] - - - - XML ZIP
DOTX, DOTM R Office Open XML шаблон документа [с включёнными макросами] - - - - XML ZIP
DPX R Digital Picture Exchange - - - - DPX
DR4 R/W/C2 Canon DPP version 4 Recipe - - - - R/W/C CanonVRD2
DSS, DS2 R Digital Speech Standard [2] - - - - Olympus
DYLIB R MacOS Mach-O executable and library files - - - - EXE
DV R Digital Video (цифровое видео) - - - - DV
DVB R/W Digital Video Broadcasting (на основе QuickTime) R/W3 R/W3 R/W/C - R/W/C QuickTime
DVR-MS R Microsoft Digital Video Recording (на основе ASF) - - R - ASF
EIP R Capture One Enhanced Image Package (на основе ZIP) R - - - R XML ZIP
EPS, EPSF, PS R/W [Encapsulated] PostScript Format R/W/C R/W/C R/W/C R/W/C R/W/C PostScript, R Photoshop
EPUB R Electronic Publication (на основе ZIP/XML) - - - - R XML ZIP
ERF R/W Epson RAW Format (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W Olympus
EXE, DLL R DOS/Windows executable and library files - - - - EXE
EXIF R/W/C Exchangeable Image File Format metadata (на основе TIFF) R/W/C - - - -
EXR R Open EXR (Extended Range) - - - - OpenEXR
EXV R/W/C Exiv2 metadata file (на основе JPEG) R/W/C R/W/C R/W/C R/W/C Supported JPEG Meta Information
F4A, F4B, F4P, F4V R/W Adobe Flash Player 9+ Audio/Video (на основе QuickTime) R/W3 R/W3 R/W/C - R/W/C QuickTime
FFF R/W6 Hasselblad Flexible File Format (на основе TIFF) R/W/C R/W/C R/W/C R/W/C -
FFF R FLIR Systems thermal image File Format - - - - FLIR
FITS R Flexible Image Transport System - - - - FITS
FLA R Macromedia/Adobe Flash project (похоже на FPX) - - R R FlashPix
FLAC R Free Lossless Audio Codec - - - - FLAC ID3 Lyrics3
FLIF R/W Free Lossless Image Format R/W/C - R/W/C R/W/C FLIF
FLV R Flash видео - - R - Flash
FPF R FLIR Public image Format - - - - FLIR
FPX R Изображение FlashPix - - R R FlashPix
GIF R/W Compuserve Graphics Interchange Format - - R/W/C R/W/C R/W/C GIF
GPR R/W GoPro RAW (на основе DNG) R/W/C R/W/C R/W/C R/W/C -
GZ, GZIP R GNU ZIP compressed archive - - - - ZIP
HDP, WDP, JXR R/W Windows HD Photo / Media Photo / JPEG XR (на основе TIFF) R/W/C R/W/C R/W/C R/W/C -
HDR R Radiance RGBE High Dynamic-Range - - - - Radiance
HEIC, HEIF, HIF R/W High Efficiency Image Format (на основе QuickTime) R/W/C - R/W/C R/W R/W QuickTime
HTML, HTM, XHTML R [Extensible] HyperText Markup Language - - - - HTML
ICC, ICM R/W/C1 International Color Consortium color profile - - - R/W/C -
ICS, ICAL R iCalendar Schedule - - - - VCalendar
IDML R Adobe InDesign Markup Language (на основе ZIP/XML) - - - - R XML ZIP
IIQ R/W Phase One Intelligent Image Quality RAW (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W PhaseOne
IND, INDD, INDT R/W Adobe InDesign Document/Template - - R/W/C - -
INSP R/W Insta360 Picture (на основе JPEG) R/W/C R/W/C R/W/C R/W/C Supported JPEG Meta Information
INSV R Insta360 Video (на основе QuickTime) - - R - QuickTime
INX R Adobe InDesign Interchange (на основе XML) - - R - -
ISO R ISO 9660 disk image - - - - ISO
ITC R iTunes Cover Flow artwork - - - - ITC
J2C, J2K, JPC R JPEG 2000 codestream R3 R3 R R Jpeg2000 Photoshop3
JP2, JPF, JPM, JPX R/W JPEG 2000 image [Compound/Extended] R/W/C3 R/W/C3 R/W/C R R/W/C Jpeg2000, R Photoshop3
JPEG, JPG, JPE R/W Joint Photographic Experts Group image R/W/C R/W/C R/W/C R/W/C Supported JPEG Meta Information
JSON R JavaScript Object Notation - - - - JSON
K25 R Kodak DC25 RAW (на основе TIFF) R R R R -
KDC R Kodak Digital Camera RAW (на основе TIFF) R R R R Kodak
KEY, KTH R Apple iWork '09 Keynote presentation/Theme - - - - XML ZIP
LA R Lossless Audio (на основе RIFF) R3 - R - RIFF
LFP, LFR R Lytro Light Field Picture - - - - Lytro
LNK R Microsoft Shell Link (Windows shortcut) - - - - LNK
LRV R/W Low-Resolution Video (на основе QuickTime) R/W3 R/W3 R/W/C - R/W/C QuickTime
M2TS, MTS, M2T, TS R MPEG-2 Transport Stream (used for AVCHD video) - - - - M2TS H264
M4A, M4B, M4P, M4V R/W MPEG-4 Audio/Video (на основе QuickTime) R/W3 R/W3 R/W/C - R/W/C QuickTime
MACOS R MacOS "._" sidecar file (may have any extension) - - - - XAttr RSRC
MAX R 3D Studio MAX (похоже на FPX) - - R R FlashPix
MEF R/W Mamiya (RAW) Electronic Format (на основе TIFF) R/W/C R/W/C R/W/C R/W/C -
MIE R/W/C Meta Information Encapsulation (MIE specification) R/W/C R/W/C R/W/C R/W/C R/W/C MIE
MIFF, MIF R Magick Image File Format R R R R MIFF Photoshop
MKA, MKV, MKS R Matroska Audio/Video/Subtitle - - - - Matroska
MOBI, AZW, AZW3 R Mobipocket electronic book (на основе Palm) - - - - Palm MOBI
MODD R Sony Picture Motion metadata (на основе XML PLIST) - - - - PLIST
MOI R MOD Information file - - - - MOI
MOS R/W Creo Leaf Mosaic (на основе TIFF) R/W/C R/W/C R/W/C R/W/C Leaf
MOV, QT R/W Apple QuickTime Movie R/W3 R/W3 R/W/C - R/W/C QuickTime
MP3 R MPEG-1 layer 3 audio - - - - MPEG ID3 Lyrics3 APE
MP4 R/W Motion Picture Experts Group version 4 (на основе QuickTime) R/W3 R/W3 R/W/C - R/W/C QuickTime
MPC R Musepack Audio - - - - MPC ID3 Lyrics3 APE
MPEG, MPG, M2V R Motion Picture Experts Group version 1 or 2 - - - - MPEG ID3 Lyrics3
MPO R/W Extended Multi-Picture format (JPEG with MPF extensions) R/W/C R/W/C R/W/C R/W/C Supported JPEG Meta Information
MQV R/W Sony Mobile QuickTime Video R/W3 R/W3 R/W/C - R/W/C QuickTime
MRW R/W Minolta RAW R/W/C R/W/C R/W/C R/W/C R/W MinoltaRaw Minolta
MXF R Material Exchange Format - - - - MXF
NEF R/W Nikon (RAW) Electronic Format (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W Nikon NikonCapture
NMBTEMPLATE R Apple iWork '09 Numbers Template - - - - XML ZIP
NRW R/W Nikon RAW (2) (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W Nikon NikonCapture
NUMBERS R Apple iWork '09 Numbers spreadsheet - - - - XML ZIP
O R Unix compiled code Object - - - - EXE
ODB, ODC, ODF, ODG,
ODI, ODP, ODS, ODT
R Open Document Database/Chart/Formula/Graphics/
Image/Presentation/Spreadsheet/Text (ZIP/XML-based)
- - - - R XML ZIP
OFR R OptimFROG audio (на основе RIFF) R3 - R - RIFF
OGG, OGV R Ogg bitstream container - - - - FLAC ID3 Lyrics3 Theora Vorbis
ONP R ON1 Presets - - - - JSON PLIST
OPUS R Ogg Opus audio - - - - FLAC ID3 Lyrics3 Opus Vorbis
ORF R/W Olympus RAW Format (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W Olympus
OTF R Open Type Font - - - - Font
PAC R Lossless Predictive Audio Compression (на основе RIFF) R3 - R - RIFF
PAGES R Apple iWork '09 Pages document - - - - XML ZIP
PCD R Kodak Photo CD Image Pac - - - - PhotoCD
PCX R PC Paintbrush - - - - PCX
PDB, PRC R Palm Database - - - - Palm
PDF R/W Adobe Portable Document Format R3 R3 R/W/C R3 R/W/C PDF, R Photoshop
PEF R/W Pentax (RAW) Electronic Format (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W Pentax
PFA, PFB R PostScript Font ASCII/Binary - - - - Font
PFM R Printer Font Metrics - - - - Font
PGF R Progressive Graphics File - - - - PGF PNG
PICT, PCT R Apple Picture file - - - R PICT Photoshop
PLIST R Apple Property List (binary and XML formats) - - - - PLIST
PMP R Sony DSC-F1 Cyber-Shot image - - - - Sony
PNGJNG, MNG R/W Portable/JPEG/Multiple-image Network Graphics R/W/C3 R/W/C3 R/W/C R/W/C R/W/C PNG
PPM, PBM, PGM R/W Portable Pixel/Bit/Gray Map - - - - R PPM, R/W/C Comment
PPT, PPS, POT R PowerPoint Presentation/Slideshow/Template (похоже на FPX) - - R R FlashPix
POTX, POTM R Office Open XML Presentation Template [Macro-enabled] - - - - XML ZIP
PPAX, PPAM R Office Open XML Presentation Addin [Macro-enabled] - - - - XML ZIP
PPSX, PPSM R Office Open XML Presentation Slideshow [Macro-enabled] - - - - XML ZIP
PPTX, PPTM R Office Open XML Presentation [Macro-enabled] - - - - XML ZIP
PSD, PSB, PSDT R/W PhotoShop Document / Large Document / Template R/W/C R/W/C R/W/C R/W/C Photoshop
PSP, PSPIMAGE R Paint Shop Pro R - - - PSP
QTIF, QTI, QIF R/W QuickTime Image File R/W3 R/W3 R/W/C - R/W/C QuickTime
R3D R Redcode RAW video - - - - Red
RA R Real Audio - - - - Real ID3 Lyrics3
RAF R/W FujiFilm RAW Format R/W/C R/W/C R/W/C R/W/C R/W FujiFilm
RAM, RPM R Real Audio/Plug-in Metafile - - - - Real
RAR R RAR Archive - - - - ZIP
RAW R Kyocera Contax N Digital RAW - - - - KyoceraRaw
RAW R/W Panasonic RAW (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W PanasonicRaw Panasonic
RIFF, RIF R Resource Interchange File Format R3 - R - RIFF
RM, RV, RMVB R Real Media/Video [переменный битрейт] - - - - Real
RSRC R Mac OS Resource - - - - RSRC Photoshop PostScript Font
RTF R Rich Text Format - - - - RTF
RW2 R/W Panasonic RAW 2 (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W PanasonicRaw Panasonic
RWL R/W Leica RAW (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W PanasonicRaw Panasonic
RWZ R Сжатое изображение Rawzor R R R R Rawzor
SEQ R FLIR Systems image Sequence - - - - FLIR
SKETCH R Sketch design file - - - - JSON ZIP
SO R Исполняемые файлы Unix ELF и файлы общих объектов - - - - EXE
SR2 R/W Sony RAW 2 (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W Sony
SRF R Sony RAW Format (на основе TIFF) R R R R Sony
SRW R/W Samsung RAW format (на основе TIFF) R/W/C R/W/C R/W/C R/W/C R/W Samsung
SVG R Масштабируемая векторная графика (на основе XML) - - - - SVG
SWF R Shockwave Flash - - R - Flash
THM R/W Уменьшенное изображение (JPEG) R/W/C R/W/C R/W/C R/W/C Supported JPEG Meta Information
THMX R Тема Office Open XML - - - - XML ZIP
TIFF, TIF R/W Теговый формат файла изображения R/W/C R/W/C R/W/C R/W/C R/W/C GeoTIFF1, R/W Trailers
TTF, TTC R Шрифт/коллекция True Type - - - - Font
TORRENT R Файл описания BitTorrent - - - - Torrent
TXT R Текстовый файл - - - - Text
VCF, VCARD R Виртуальная карта - - - - VCard
VOB R Видео объект (на основе MPEG) - - - - MPEG
VRD R/W/C2 Canon DPP Recipe Data - - R/W/C - R/W/C CanonVRD2
VSD R Microsoft Visio Drawing (похоже на FPX) - - R R FlashPix
WAV R Цифровые данные WAVeform Windows (на основе RIFF) R3 - R - RIFF
WEBM R Google веб кино (на основе Matroska) - - - - Matroska
WEBP R Google веб картинка (на основе RIFF) R3 - R - RIFF
WMA, WMV R Windows Media аудио/видео (на основе ASF) - - R - ASF
WTV R Записанные TV шоу Windows - - - - WTV
WV R WavePack аудио без потерь качества (на основе RIFF) R3 - R - RIFF
X3F R/W Sigma/Foveon RAW R/W/C R/W/C R/W/C R/W/C R/W Sigma, R SigmaRaw
XCF R Собственный формат изображений GIMP R R R R GIMP
XLS, XLT R Microsoft Excel таблицы/шаблоны (похоже на FPX) - - R R FlashPix
XLSX, XLSM, XLSB R Office Open XML таблица [Macro-enabled/Binary] - - - - XML ZIP
XLTX, XLTM R Office Open XML шаблоны таблиц [с включёнными макросами] - - - - XML ZIP
XMP R/W/C Сопроводительный файл Extensible Metadata Platform - - R/W/C - -
ZIP R ZIP архив - - - - ZIP

1 Только запись блока, 2 Только создание блока, 3 Нестандартный формат, 4 Доступна только запись для файлов формата PostScript, 5 Доступна только запись для файлов формата PDF, 6 Доступна только запись при игнорировании незначительных ошибок из-за несовместимости с Phocus

Метаинформация

         ----------------------+----------------------+---------------------
         EXIF           r/w/c  |  CIFF           r/w  |  Ricoh RMETA    r
         GPS            r/w/c  |  AFCP           r/w  |  Picture Info   r
         IPTC           r/w/c  |  Kodak Meta     r/w  |  Adobe APP14    r
         XMP            r/w/c  |  FotoStation    r/w  |  MPF            r
         MakerNotes     r/w/c  |  PhotoMechanic  r/w  |  Stim           r
         Photoshop IRB  r/w/c  |  JPEG 2000      r    |  DPX            r
         ICC Profile    r/w/c  |  DICOM          r    |  APE            r
         MIE            r/w/c  |  Flash          r    |  Vorbis         r
         JFIF           r/w/c  |  FlashPix       r    |  SPIFF          r
         Ducky APP12    r/w/c  |  QuickTime      r    |  DjVu           r
         PDF            r/w/c  |  Matroska       r    |  M2TS           r
         PNG            r/w/c  |  MXF            r    |  PE/COFF        r
         Canon VRD      r/w/c  |  PrintIM        r    |  AVCHD          r
         Nikon Capture  r/w/c  |  FLAC           r    |  ZIP            r
         GeoTIFF        r/w/c  |  ID3            r    |  (и другое)

Поддерживаемая метаинформация JPEG

ExifTool может читать, записывать и/или создавать следующие типы метаинформации в изображениях JPEG:

Метаинформация JPEG Поддержка Описание
APP0 - JFIF R/W/C JPEG File Interchange Format
APP0 - JFXX R Extended JFIF
APP0 - CIFF R/W Camera Image File Format (used by some Canon models)
APP0 - AVI1 R JPEG AVI information
APP0 - Ocad R Photobucket Ocad segment
APP1 - EXIF R/W/C Exchangeable Image File Format (multi-segment)
APP1 - XMP R/W/C Extensible Metadata Platform (multi-segment)
APP1 - QVCI R Casio QV-7000SX QVCI information
APP1 - FLIR R FLIR thermal imaging data (multi-segment)
APP1 - RawThermalImage R Thermal image from Parrot Bebop-Pro Thermal drone
APP2 - ICC R/W/C International Color Consortium (multi-segment)
APP2 - FPXR R FlashPix Ready (multi-segment)
APP2 - MPF R Multi-Picture Format
APP2 - PreviewImage R Samsung/GE APP2 preview image (multi-segment)
APP3 - Kodak Meta R/W Kodak Meta information (EXIF-like)
APP3 - Stim R Stereo Still Image format
APP3 - PreviewImage R Samsung/HP preview image (multi-segment)
APP4 - Scalado R (presumably written by Scalado mobile software)
APP4 - FPXR R FlashPix Ready in non-standard location (multi-segment)
APP4 - PreviewImage R (continued from APP3)
APP5 - Ricoh RMETA R Ricoh custom fields
APP5 - Samsung UniqueID R Samsung Unique ID
APP5 - PreviewImage R (continued from APP4)
APP6 - EPPIM R Toshiba PrintIM
APP6 - NITF R National Imagery Transmission Format
APP6 - HP TDHD R Hewlett-Packard Photosmart R837 TDHD information
APP6 - GoPro R GoPro Metadata Format (GPMF) information
APP7 - Pentax R Pentax APP7 maker notes
APP7 - Qualcomm R Qualcomm Camera Attributes
APP7 - Huawei R Huawei APP7 maker notes (extract with Unknown option)
APP8 - SPIFF R Still Picture Interchange File Format
APP9 - Media Jukebox R Media Jukebox XML information
APP10 - Comment R PhotoStudio Unicode Comment
APP11 - JPEG-HDR R JPEG-HDR compressed ratio image
APP12 - Picture Info R ASCII-based Picture Information
APP12 - Ducky R/W/C Photoshop "Save for Web"
APP13 - Photoshop IRB R/W/C Image Resource Block (multi-segment, includes IPTC)
APP13 - Adobe CM R Adobe Color Management
APP14 - Adobe R/W/C Adobe DCT filter
APP15 - GraphicConverter R GraphicConverter quality
COM R/W/C JPEG Comment (multi-segment)
DQT R (used to calculate the Extra:JPEGDigest tag value)
SOF R JPEG Start Of Frame
Trailers 1
AFCP trailer R/W AXS File Concatenation Protocol (includes IPTC)
CanonVRD trailer R/W/C Canon DPP Recipe Data (includes DR4)
FotoStation trailer R/W FotoWare FotoStation (includes IPTC)
PhotoMechanic trailer R/W Camera Bits Photo Mechanic
MIE trailer R/W Meta Information Encapsulation
Samsung trailer R Samsung Galaxy trailer
Insta360 trailer R Insta360 trailer found in INSP files
PreviewImage trailer R/W/C (preview image written after JPEG EOI)
EmbeddedVideo trailer R (extracted only with ExtractEmbedded option)

ПАРАМЕТРЫ

Регистр не имеет значения для любых параметров командной строки (включая имена тегов и групп), за исключением односимвольных параметров, когда существует соответствующий параметр верхнего регистра. Многие односимвольные параметры имеют эквивалентные версии с длинными именами (показаны в скобках), а некоторые параметры имеют инверсии, которые вызываются двойным тире в начале. Нераспознанные параметры интерпретируются как имена тегов (по этой причине несколько односимвольных параметров НЕ могут быть объединены в один аргумент). Вопреки стандартной практике, параметры могут появляться после имён исходных файлов в командной строке exiftool.

Подробное описание опций

Операции с тегами

-TAG

Извлечь информацию для указанного тега (например, «-CreateDate»). В одной команде можно указать несколько тегов. Имя тега — это дескриптор, с помощью которого делается ссылка на часть информации. Смотрите Image::ExifTool::TagNames (man Image::ExifTool::TagNames) для документации по доступным именам тегов. Имя тега может включать имена ведущих групп, разделённых двоеточиями (например, «-EXIF:CreateDate» или «-Doc1:XMP:Creator»), и каждое имя группы может иметь префикс в виде цифры для указания номера семейства (например, «-1IPTC:City»). Используйте опцию -listg, чтобы перечислить доступные имена групп по семействам.

Специальное имя тега «All» может использоваться для обозначения всей метаинформации (т. е. -All). Это особенно полезно, когда имя группы указано для извлечения всей информации в группе (но имейте в виду, что если не используется также опция -a, некоторые теги в группе могут быть подавлены тегами с таким же именем в других группах). Подстановочные знаки "?" и «*» могут использоваться в имени тега для соответствия любому одиночному символу и нулю или более символам соответственно. Их нельзя использовать в имени группы, за исключением того, что имя группы «*» (или «All») может использоваться для извлечения всех экземпляров тега (как если бы использовалось -a). Обратите внимание, что аргументы, содержащие подстановочные знаки должны быть заключены в кавычки в командной строке большинства систем, чтобы предотвратить подстановку оболочки.

К имени тега можно добавить «#», чтобы отключить преобразование печати для каждого тега (смотрите опцию -n). Это также можно использовать при записи или копировании тегов.

Если теги не указаны, извлекается вся доступная информация (как если бы было указано «-All»).

Примечание. При извлечении информации по умолчанию отображаются описания, а не имена тегов. Вместо этого используйте параметр -s, чтобы увидеть имена тегов.

--TAG

Исключить указанный тег из извлечённой информации. То же, что и опция -x. Имена групп и подстановочные знаки разрешены, как описано выше для -TAG. После исключения из вывода тег не может быть повторно включён с помощью последующей опции. Также может использоваться после параметра -tagsFromFile для исключения тегов из копирования (при перенаправлении на другой тег должен быть исключён именно исходный тег) или для исключения групп из удаления при удалении всей информации (например, «-all= --exif:all» удаляет всю информацию, кроме EXIF). Но обратите внимание, что это не исключит отдельные теги из группового удаления (если не указана группа семейства 2, смотрите примечание 4 ниже). Вместо этого отдельные теги можно восстановить с помощью параметра -tagsFromFile (например, «-all= -tagsfromfile @ -artist»).


-TAG[+-^]=[ЗНАЧЕНИЕ]

Напишет новое значение для указанного тега (например, «-comment=wow») или удалите тег, если ЗНАЧЕНИЕ не указано (например, «-comment=»). «+=» и «-=» используются для добавления или удаления существующих записей из списка или для сдвига значений даты/времени (смотрите Image::ExifTool::Shift.pl (man Image::ExifTool::Shift.pl) и примечание 6 ниже для более подробной информации). «+=» также может использоваться для увеличения числовых значений (или уменьшения, если ЗНАЧЕНИЕ отрицательное), а «-=» может использоваться для условного удаления или замены тега (смотрите «Примеры записи метаинформации» в разделе «Примеры запуска ExifTool»). «^=» используется для записи пустой строки вместо удаления тега, когда не задано ЗНАЧЕНИЕ, но в остальном эквивалентно =.

TAG может содержать одно или несколько ведущих имён групп семейств 0, 1, 2 или 7 с префиксом необязательных номеров семейств и разделённых двоеточиями. Если имя группы не указано, тег создаётся в предпочтительной группе и обновляется в любом другом месте, где уже существует тег с таким же именем. Предпочтительная группа — это первая группа в следующем списке, где действителен TAG: 1) EXIF, 2) IPTC, 3) XMP.

Подстановочные знаки «*» и «?» могут использоваться в именах тегов для присвоения одного и того же значения нескольким тегам. При указании с помощью подстановочных знаков «небезопасные» теги не записываются. Имя тега «All» эквивалентно «*» (за исключением того, что оно не требует заключения в кавычки, в то время как аргументы с подстановочными знаками нужно заключать в кавычки, чтобы их не интерпретировала оболочка) и часто используется при удалении всех метаданных (т. е. «-All=») или целой группы (например, «-XMP-dc:All=», см. примечание 4 ниже). Обратите внимание, что не все группы можно удалить, и что группа JPEG APP14 «Adobe» не удаляется по умолчанию с помощью «-All=», поскольку это может повлиять на внешний вид изображения. Однако информация о цветовом пространстве удаляется, поэтому цвета могут быть затронуты (но этого можно избежать, скопировав назад теги, определённые с помощью ярлыка ColorSpaceTags). Используйте опцию -listd для получения полного списка удаляемых групп и смотрите примечание 5 ниже относительно групп «APP». Кроме того, в изображении некоторые группы могут содержаться в других, и эти группы удаляются, если удаляется содержащая группа:

JPEG Image:

  • - Удаление EXIF или IFD0 также удаляет ExifIFD, GlobParamIFD, GPS, IFD1, InteropIFD, MakerNotes, PrintIM and SubIFD.
  • - Удаление ExifIFD также удаляет InteropIFD и MakerNotes.
  • - Удаление Photoshop также удаляет IPTC.

TIFF Image:

  • - Удаление EXIF только удаляет ExifIFD, который также удаляет InteropIFD и MakerNotes.

Примечания:

  1. В одной команде может быть присвоено множество значений тегов. Если два назначения влияют на один и тот же тег, последний имеет приоритет (за исключением тегов типа списка, для которых записываются оба значения).
  2. Как правило, теги MakerNotes считаются «Permanent» (постоянными) и могут редактироваться, но не могут быть созданы или удалены по отдельности. Это позволяет избежать многих потенциальных проблем, включая неизбежные проблемы совместимости с программным обеспечением OEM, которое может быть очень негибким в отношении информации, которую он ожидает найти в примечаниях производителя.
  3. Изменения файлов PDF с помощью ExifTool обратимы (путём удаления обновления с помощью «-PDF-update:all=»), поскольку исходная информация никогда не удаляется из файла. Таким образом, один только ExifTool нельзя использовать для безопасного редактирования метаданных в файлах PDF.
  4. Указание «-GROUP:all=» удаляет всю группу как блок, только если указано одно семейство 0 или 1 группа. В противном случае все удаляемые теги в указанной группе(ах) удаляются по отдельности, и в этом случае можно исключить отдельные теги из массового удаления. Например, «-time:all --Exif:Time:All» удаляет все удаляемые теги времени, кроме тех, что находятся в EXIF. Это различие также применяется, если при удалении всех групп указано семейство 2. Например, «-2all:all=» удаляет теги по отдельности, а «-all:all=» удаляет целые блоки.
  5. Имена групп «APP» (от «APP0» до «APP15») используются для удаления сегментов приложения JPEG, которые не связаны с другой удаляемой группой. Например, указание «-APP14:All=» НЕ удалит сегмент APP14 «Adobe», потому что это достигается с помощью «-Adobe:All».
  6. При сдвиге значения сдвиг применяется к исходному значению тега, перекрывая любые другие значения, ранее присвоенные тегу в той же командной строке. Чтобы сдвинуть значение даты/времени и скопировать его в другой тег в той же операции, используйте параметр -globalTimeShift.

Особенность: целочисленные значения могут быть указаны в шестнадцатеричном формате с начальным «0x», а простые рациональные значения могут быть указаны как дроби.

-TAG<=DATFILE или -TAG<=FMT

Установит значение тега из содержимого файла DATFILE. Имя файла также может быть задано строкой FMT, где %d, %f и %e представляют каталог, имя файла и расширение исходного ФАЙЛА (подробнее смотрите в опции -w). Обратите внимание, что этот аргумент должен заключаться в кавычки, чтобы предотвратить перенаправление оболочки, поскольку он содержит символ «<». Если DATFILE/FMT не указан, эффект будет таким же, как и «-TAG=», и тег просто удаляется. «+<=» или «-<=» также могут использоваться для добавления или удаления определённых записей списка или для сдвига значений даты/времени.

-tagsFromFile ИСХОДНЫЙ_ФАЙЛ или FMT

Скопируют значения тегов из ИСХОДНЫЙ_ФАЙЛ в ФАЙЛ. Имена тегов в командной строке после этой опции указывают теги, которые нужно скопировать или исключить из копии. В именах этих тегов разрешены подстановочные знаки. Если теги не указаны, то все возможные теги (смотрите примечание 1 ниже) из исходного файла копируются в теги с тем же именем в предпочтительном месте выходного файла (так же, как при указании «-all»). Для копирования тегов из нескольких файлов можно использовать более одной опции -tagsFromFile.

По умолчанию этот параметр обновит все существующие и доступные для записи теги с тем же именем в выходном ФАЙЛЕ, но создаст новые теги только в их предпочтительных группах. Это позволяет автоматически передавать некоторую информацию в соответствующую группу при копировании между изображениями разных форматов. Однако, если для тега указано имя группы, информация записывается только в эту группу (если не перенаправляется в другую группу, смотрите ниже). Если в качестве имени группы используется «All», то указанные теги записываются в ту же группу семейства 1, которая была у них в исходном файле (то есть в том же конкретном месте, например ExifIFD или XMP-dc). Например, обычная операция копирования всех доступных для записи тегов в одни и те же конкретные места в выходном ФАЙЛЕ достигается добавлением «-all:all». Другое семейство может быть указано путём добавления ведущего номера семейства к имени группы (например, «-0all:all» сохраняет одно и то же общее местоположение, например EXIF или XMP).

ИСХОДНЫЙ_ФАЙЛ может быть тем же, что и ФАЙЛ, для перемещения информации внутри одного файла. В этом случае «@» может использоваться для представления исходного файла (например, «-tagsFromFile @»), что позволяет использовать эту функцию для пакетной обработки нескольких файлов. Указанные теги затем копируются из каждого файла по очереди по мере его перезаписи. Для продвинутого пакетного использования имя исходного файла также может быть указано с помощью строки FMT, в которой %d, %f и %e представляют каталог, имя файла и расширение ФАЙЛА. (например, текущий ФАЙЛ будет представлен как «%d%f.%e» с тем же эффектом, что и «@»). Смотрите опцию -w для примеров строк FMT.

Мощная функция перенаправления позволяет указать тег назначения для каждого скопированного тега. С помощью этой функции информация может быть записана в тег с другим именем или группой. Это делается с помощью «'-ТЕГ_НАЗНАЧЕНИЯ<ИСХОДНЫЙ_ТЕГ'» или «'-ИСХОДНЫЙ_ТЕГ>ТЕГ_НАЗНАЧЕНИЯ'» в командной строке после -tagsFromFile, и вызывает копирование значения ИСХОДНЫЙ_ТЕГ из ИСХОДНЫЙ_ФАЙЛ и запись в ТЕГ_НАЗНАЧЕНИЯ в ФАЙЛЕ. Не действует, если ИСХОДНЫЙ_ТЕГ не существует в ИСХОДНОМ_ФАЙЛЕ. Обратите внимание, что этот аргумент должен быть заключён в кавычки, чтобы предотвратить перенаправление оболочки, и в нём нет знака «=», как при присвоении новых значений. Теги источника и/или назначения могут иметь префикс в виде имени группы и/или суффикс «#». Подстановочные знаки разрешены в именах тегов источника и назначения. Группа назначения и/или имя тега «All» или «*» записываются в ту же группу семейства 1 и/или имя тега, что и источник. Если группа назначения не указана, информация записывается в предпочтительную группу. Пробелы вокруг «>» или «<» игнорируются. Для удобства «-tagsFromFile @» предполагается для любых перенаправленных тегов, которые указаны без предшествующей опции -tagsFromFile. Скопированные теги также могут быть добавлены или удалены из списка с аргументами вида «'-ИСХОДНЫЙ_ТЕГ+<ТЕГ_НАЗНАЧЕНИЯ'» или «'-ИСХОДНЫЙ_ТЕГ-<ТЕГ_НАЗНАЧЕНИЯ'» (но смотрите примечание 5 ниже).


Расширение функции перенаправления позволяет использовать строки, содержащие имена тегов, с правой стороны символа «<» с синтаксисом «'-ТЕГ_НАЗНАЧЕНИЯ<СТРОКА'», где имена тегов в СТРОКЕ начинаются с префикса «$»

Смотрите опцию -p и раздел «Расширенное форматирование» для получения дополнительных сведений об этом синтаксисе. Строки, начинающиеся со знака «=», должны содержать один пробел после «<», чтобы избежать путаницы с оператором «<=», который устанавливает значение тега из содержимого файла. Один пробел в начале строки удаляется, если он существует, но все остальные пробелы в строке сохраняются. Смотрите примечание 8 ниже об использовании функции перенаправления с тегами типа списка, ярлыками или при использовании подстановочных знаков в именах тегов.

Смотрите «Примеры копирования метаинформации» в разделе «Примеры запуска ExifTool»

Примечания:

1) Некоторые теги (обычно теги, которые могут повлиять на внешний вид изображения) считаются «небезопасными» для записи и копируются только в том случае, если они указаны явно (т. е. без подстановочных знаков). Дополнительную информацию о «небезопасных» тегах смотрите в документации по именам тегов.

2) Помните о разнице между исключением тега из копируемого (--TAG) и удалением тега (-TAG=). Исключение тега предотвращает его копирование в целевое изображение, но при удалении из изображения будет удалён уже существующий тег.

3) Информация с меткой создателя копируется как блок, поэтому на неё, как и на другую информацию, не влияют последующие назначения тегов в командной строке, а отдельные теги makernote не могут быть исключены из копии блока.

Кроме того, поскольку PreviewImage, на который имеется ссылка в примечаниях создателя, может быть довольно большим, он не копируется и при желании должен быть передан отдельно.

4) Порядок операций — скопировать все указанные теги в точку параметра -tagsFromFile в командной строке. Любое присвоение тегов справа от опции -tagsFromFile выполняется после копирования всех тегов.

Например, новые значения тегов устанавливаются в порядке один, два, три и четыре с помощью этой команды:

exiftool -One=1 -tagsFromFile s.jpg -Two -Four=4 -Three d.jpg

Это важно в том случае, когда существует перекрытие между скопированными и назначенными тегами, поскольку более поздние операции могут переопределить более ранние.

5) Обычное поведение скопированных тегов отличается от поведения назначенных тегов для тегов типа списка и условных замен, поскольку каждая операция копирования тега отменяет любые предыдущие операции. Хотя это позволяет избежать дублирования элементов списка при копировании групп тегов из файла, содержащего избыточную информацию, оно также предотвращает копирование значений разных тегов в один и тот же список, когда это является намерением. Таким образом, предоставляется опция -addTagsFromFile, которая позволяет копировать несколько тегов в один и тот же список. Например:

exiftool -addtagsfromfile @ '-subject<make' '-subject<model' ...

Аналогично, -addTagsFromFile необходимо использовать при условной замене тега, чтобы предотвратить отмену предыдущих условий.

Помимо этих различий, параметры -tagsFromFile и -addTagsFromFile эквивалентны.

6) Параметр -a (разрешить дублирование тегов) всегда действует при копировании тегов из ИСХОДНЫЙ_ФАЙЛ, но тег с наивысшим приоритетом всегда копируется последним, поэтому он имеет приоритет.

7) Структурированные теги по умолчанию копируются при копировании тегов. Подробнее смотрите в описании опции -struct.

8) При использовании функции перенаправления прямое копирование тега (например, «'-ТЕГ_НАЗНАЧЕНИЯ<ИСХОДНЫЙ_ТЕГ'») не то же самое, что интерполяция его значения внутри строки (например, «'-ТЕГ_НАЗНАЧЕНИЯ<$ИСХОДНЫЙ_ТЕГ'») для тегов типа списка, тегов ярлыков, имён тэгов, содержащие подстановочные знаки, или переменные UserParam. При прямом копировании значения каждого совпадающего исходного тега копируются индивидуально в целевой тег (как если бы они были отдельными назначениями). Однако при интерполяции внутри строки элементы списка и значения ярлыков объединяются (с разделителем, установленным параметром -sep), и использование подстановочных знаков не допускается. Кроме того, переменные UserParam доступны только при интерполяции в строку. Другое отличие состоит в том, что незначительное предупреждение генерируется, если тег не существует при интерполяции его значения в строку (с «$»), но не при прямом копировании тега.

Наконец, поведение отличается, когда используется тег назначения или группа «All». При прямом копировании группа назначения и/или имя тега «All» записываются в ту же группу семейства 1 и/или имя тега, что и источник. Но при интерполяции в строку идентичность исходных тегов теряется, и значение записывается во все возможные группы/теги. Например, строковая форма должна использоваться в следующей команде, поскольку цель состоит в том, чтобы установить значение всех существующих тегов даты/времени из «CreateDate»:

exiftool "-time:all<$createdate" -wm w ФАЙЛ

-x ТЕГ (-exclude)

Исключить указанный тег. Может быть несколько опций -x. Это имеет тот же эффект, что и --TAG в командной строке. Полное описание смотрите в документации --TAG выше.

Форматирование текста ввода-вывода

Обратите внимание, что конечные пробелы удаляются из извлечённых значений для большинства форматов вывода текста. Исключения составляют «-b», «-csv», «-j» и «-X».

-args (-argFormat)

Выводить информацию в виде аргументов exiftool, подходящих для использования с опцией -@ при записи. Можно комбинировать с опцией -G для включения имён групп. Эта функция может использоваться для эффективного копирования тегов между изображениями, но позволяет изменять метаданные путём редактирования промежуточного файла (в данном примере «out.args»):

exiftool -args -G1 --filename --directory src.jpg > out.args
exiftool -@ out.args -sep ", " dst.jpg

Примечание. Будьте осторожны при копировании информации с помощью этого метода, так как легко записать теги, которые обычно считаются «небезопасными». Например, теги FileName и Directory исключены в приведённом выше примере, чтобы избежать переименования и перемещения файла назначения. Также обратите внимание, что вторая команда выше будет выдавать предупреждающие сообщения для любых тегов, которые не доступны для записи.

Кроме того, следует использовать параметр -sep, как и во второй команде выше, для сохранения отдельных элементов списка при записи метаданных обратно в файлы изображений, а параметр -struct может использоваться при извлечении для сохранения структурированной информации XMP.

-b (-binary)

Вывести запрошенные метаданные в двоичном формате без имён и описаний тегов. Этот параметр в основном используется для извлечения встроенных изображений или других двоичных данных, но он также может быть полезен для некоторых текстовых строк, поскольку управляющие символы (например, новые строки) не заменяются на '.' как это происходит с ними в выводе по умолчанию. По умолчанию элементы списка разделяются новой строкой при извлечении с параметром -b, но это можно изменить (подробности смотрите в описании опции -sep). Можно комбинировать с «-j», «-php» или «-X» для извлечения двоичных данных в формате JSON, PHP или XML, но обратите внимание, что «небезопасные» теги должны быть явно указаны для извлечения двоичных данных в этих форматах.

-c ФОРМАТ (-coordFormat)

Устанавливает формат печати для координат GPS. ФОРМАТ использует тот же синтаксис, что и строка формата «printf». Спецификаторы соответствуют градусам, минутам и секундам в указанном порядке, но минуты и секунды не являются обязательными. Например, в следующей таблице приведены выходные данные для одной и той же координаты в различных форматах:

                        ФОРМАТ                  Вывод
                -------------------    ------------------
                "%d deg %d' %.2f"\"    54 deg 59' 22.80"  (по умолчанию для чтения)
                "%d %d %.8f"           54 59 22.80000000  (по умолчанию для копирования)
                "%d deg %.4f min"      54 deg 59.3800 min
                "%.6f degrees"         54.989667 degrees

Примечания:

1) Чтобы избежать потери точности, формат координат по умолчанию отличается при копировании тегов с помощью параметра -tagsFromFile.

2) Если полушарие известно, опорное направление (N, S, E или W) добавляется к каждой напечатанной координат, но с добавлением «+» для спецификатора формата (например. «%+.6f») вместо этого выведет координаты со знаком.

3) Это форматирование печати можно отключить с помощью опции -n для извлечения координат в виде десятичных градусов со знаком.

-charset [[TYPE=]КОДИРОВКА]

Если TYPE равен «ExifTool» или не указан, этот параметр устанавливает кодировку символов ExifTool для значений выходных тегов при чтении и входных значений при записи со значением по умолчанию «UTF8». Если КОДИРОВКА не указана, возвращается список доступных наборов символов. Допустимые значения КОДИРОВКИ:

                КОДИРОВКА     Псевдоним(ы)        Описание
                ----------  ---------------  ----------------------------------
                UTF8        cp65001, UTF-8   UTF-8 кодировки (по умолчанию)
                Latin       cp1252, Latin1   Windows Latin1 (западноевропейская)
                Latin2      cp1250           Windows Latin2 (центральноевропейская)
                Cyrillic    cp1251, Russian  Windows кириллица
                Greek       cp1253           Windows греческий
                Turkish     cp1254           Windows турецкий
                Hebrew      cp1255           Windows иврит
                Arabic      cp1256           Windows арабский
                Baltic      cp1257           Windows балтийский
                Vietnam     cp1258           Windows вьетнамский
                Thai        cp874            Windows тайский
                DOSLatinUS  cp437            DOS Latin US
                DOSLatin1   cp850            DOS Latin1
                DOSCyrillic cp866            DOS кириллица
                MacRoman    cp10000, Roman   Macintosh Roman
                MacLatin2   cp10029          Macintosh Latin2 (центральноевропейская)
                MacCyrillic cp10007          Macintosh кириллица
                MacGreek    cp10006          Macintosh греческий
                MacTurkish  cp10081          Macintosh турецкий
                MacRomanian cp10010          Macintosh румынский
                MacIceland  cp10079          Macintosh исландский
                MacCroatian cp10082          Macintosh хорватский

TYPE может быть «FileName», чтобы указать кодировку имён файлов в командной строке (для аргументов ФАЙЛ). В Windows это запускает использование подпрограмм ввода-вывода для расширенных символов, обеспечивая таким образом поддержку имён файлов Unicode. Подробности смотрите в разделе «ИМЕНА ФАЙЛОВ WINDOWS UNICODE» ниже.

Другие значения TYPE, перечисленные ниже, используются для указания внутреннего кодирования различных форматов метаинформации.

                ТИП       Описание                                  По умолчанию
                ---------  -------------------------------------------  -------
                EXIF       Внутренняя кодировка строк EXIF "ASCII"    (нет)
                ID3        Внутренняя кодировка информации ID3v1       Latin
                IPTC       Внутренняя IPTC кодировка предполагаемая        Latin
                            когда IPTC:CodedCharacterSet не установлен
                Photoshop  Внутренняя кодировка строк Photoshop IRB   Latin
                QuickTime  Внутренняя кодировка строк QuickTime       MacRoman
                RIFF       Внутренняя кодировка строк RIFF            0

Смотрите https://exiftool.org/faq.html#Q10 для получения дополнительной информации о наборах кодированных символов и опциях Image::ExifTool для получения дополнительных сведений о параметрах -charset.

-csv[[+]=ФАЙЛ_CSV]

Экспорт информации в формате CSV или импорт информации, если указан ФАЙЛ_CSV. При импорте файл CSV должен иметь точно такой же формат, что и экспортируемый файл. Первая строка ФАЙЛА_CSV должна содержать имена тегов ExifTool (с необязательными именами групп) для каждого столбца файла, а значения должны быть разделены запятыми. В специальном столбце «SourceFile» указываются файлы, связанные с каждой строкой информации (и SourceFile со знаком «*» может использоваться для определения тегов по умолчанию, которые будут импортированы для всех файлов, которые объединены с любыми тегами, указанными для конкретного обработанного SourceFile). Следующие примеры демонстрируют базовое использование этой опции:

                # генерировать CSV-файл с общими тегами из всех изображений в каталоге
                exiftool -common -csv ДИРЕКТОРИЯ > out.csv

                # обновить метаданные для всех изображений в каталоге из файла CSV
                exiftool -csv=a.csv ДИРЕКТОРИЯ

Пустые значения игнорируются при импорте (если не используется параметр -f и для API MissingTagValue задана пустая строка, и в этом случае тег удаляется). Кроме того, столбцы FileName и Directory игнорируются, если они существуют (например, ExifTool не будет пытаться записать эти теги при импорте CSV). Чтобы принудительно удалить тег, используйте опцию -f и установите значение «-» в файле CSV (или значение MissingTagValue, если использовалась эта опция API). С помощью одной команды можно импортировать несколько баз данных.

При экспорте файла CSV опция -g или -G добавляет имена групп к заголовкам тегов. Если опция -a используется для разрешения повторяющихся имён тегов, повторяющиеся теги включаются в вывод CSV только в том случае, если заголовки столбцов уникальны. Добавление опции -G4 обеспечивает уникальный заголовок столбца для каждого тега. Опция -b может быть добавлена для вывода двоичных данных, при необходимости закодированных в base64 (обозначенных ASCII «base64:» как первые 7 байтов значения). Значения также могут быть закодированы в base64, если используется опция -charset и значение содержит недопустимые символы.

При экспорте определённых тегов столбцы CSV располагаются в том же порядке, что и указанные теги, при условии, что заголовки столбцов точно соответствуют указанным именам тегов, в противном случае столбцы сортируются в алфавитном порядке.


При импорте из файла CSV обрабатываются только файлы, указанные в командной строке. Любые лишние записи в файле CSV игнорируются.

Теги типа списка хранятся в виде простых строк в файле CSV, но можно использовать параметр -sep, чтобы разбить их на отдельные элементы при импорте.

Специальная функция: -csv+=ФАЙЛ_CSV может использоваться для добавления элементов в существующие списки. Это влияет только на теги типа списка. Также применимо к опции -j.

Обратите внимание, что этот параметр принципиально отличается от всех других параметров выходного формата, поскольку он требует, чтобы информация из всех входных файлов была буферизована в памяти перед записью вывода. Это может привести к чрезмерному использованию памяти при обработке очень большого количества файлов с помощью одной команды. Кроме того, это делает этот параметр несовместимым с параметром -w. При обработке большого количества файлов рекомендуется либо использовать формат вывода JSON (-j) или XML (-X), либо использовать -p для создания файла CSV с фиксированным столбцом вместо использования параметра -csv.

-d ФОРМАТ (-dateFormat)

Установит формат для значений тегов даты/времени. Строка ФОРМАТ может содержать коды форматирования, начинающиеся с символа процента («%»), для представления различных компонентов значения даты/времени. Особенности синтаксиса ФОРМАТ зависят от системы — за подробностями обратитесь к странице руководства «strftime» в вашей системе. Формат по умолчанию эквивалентен «%Y:%m:%d %H:%M:%S». Эта опция не влияет на теги date-only (только дата) или time-only (только времени) и игнорирует информацию о часовом поясе, если таковая имеется. Для каждой команды может использоваться только одна опция -d. Требуется POSIX::strptime or Time::Piece для преобразования инверсии при записи.

-D (-decimal)

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

-E, -ex, -ec (-escapeHTML, -escapeXML, -escapeC)

Символы для экранирования в значениях выходных тегов для HTML (-E), XML (-ex) или C (-ec). Для HTML все символы с кодовыми точками Unicode выше U+007F экранируются, а также следующие 5 символов: & (&amp;) ' (&#39;) " (&quot;) > (&gt;) и < (&lt;). Для XML экранируются только эти 5 символов. Опция -E подразумевается с -h, а -ex подразумевается с -X. Для C все управляющие символы и обратная косая черта экранируются. При записи тегов применяется обратное преобразование.

-f (-forcePrint)

Принудительная печать тегов, даже если их значения не найдены. Этот параметр применяется только тогда, когда в командной строке запрашиваются определённые теги (т. е. не с использованием подстановочных знаков или «-all»). При использовании этой опции тире («-») печатается для значения любого отсутствующего тега, но тире можно изменить с помощью опции API MissingTagValue. Также может использоваться для добавления атрибута «flags» в вывод -listx или для разрешения удаления тегов при записи с помощью функции -csv=CSVFILE.

-g[ЧИСЛО][:ЧИСЛО...] (-groupHeadings)

Организует вывод по группам тегов. ЧИСЛО указывает номер семейства группы и может быть 0 (общее расположение), 1 (конкретное расположение), 2 (категория), 3 (номер документа), 4 (номер экземпляра), 5 (путь к метаданным), 6 (EXIF/TIFF формат) или 7 (идентификатор тега). Предполагается -g0, если номер семейства не указан. Можно комбинировать с другими параметрами для добавления имён групп к выходным данным. Можно указать несколько семейств, разделив их двоеточием. По умолчанию результирующее имя группы упрощается за счёт удаления любого ведущего «Main:» и сворачивания смежных идентичных имён групп, но этого можно избежать, поставив двоеточие перед первым номером семейства (например, -g:3:1).

Используйте параметр -listg, чтобы перечислить имена групп для указанного семейства. Опции SavePath и SaveFormat API включаются автоматически, если запрашиваются соответствующие имена групп семейств 5 или 6. Дополнительную информацию смотрите документации API GetGroup.

-G[ЧИСЛО][:ЧИСЛО...] (-groupNames)

То же, что и -g, но вывести имя группы для каждого тега. Предполагается -G0, если ЧИСЛО не указано. Может сочетаться с рядом других опций для добавления имён групп к выходным данным. Обратите внимание, что ЧИСЛО можно добавить везде, где в документации упоминается -G. Смотрите опцию -g выше для подробностей.

-h (-htmlFormat)

Использовать форматирование таблицы HTML для вывода. Подразумевается опция -E. Параметры форматирования -D, -H, -g, -G, -l и -s могут использоваться в сочетании с -h, чтобы влиять на формат HTML.

-H (-hex)

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

-htmlDump[СМЕЩЕНИЕ]

Создать динамическую веб-страницу, содержащую шестнадцатеричный дамп информации EXIF. Это может быть очень мощным инструментом для низкоуровневого анализа информации EXIF. Опция -htmlDump также вызывается, если параметры -v и -h используются вместе. Уровень подробности определяет максимальную длину выгружаемых блоков. СМЕЩЕНИЕ может быть задано для определения базы для отображаемых смещений. Если не указано, используется базовое смещение EXIF/TIFF. Используйте -htmlDump0 для абсолютных смещений. В настоящее время выгружается только информация EXIF/TIFF и JPEG, но параметр -u можно использовать для получения необработанного шестнадцатеричного дампа других форматов файлов.

-j[[+]=ФАЙЛ_JSON] (-json)

Использовать форматирование JSON (JavaScript Object Notation) для вывода на консоль или импортировать файл JSON, если указан ФАЙЛ_JSON. Этот параметр можно комбинировать с -g для организации вывода в объекты по группам или -G для добавления имён групп к каждому тегу. Теги типа списка с несколькими элементами выводятся как массивы JSON, кроме тех случаев, когда используется -sep. По умолчанию структуры XMP объединяются в отдельные теги в выходных данных JSON, но исходная структура может быть сохранена с помощью параметра -struct (это также приводит к тому, что все теги XMP типа списка выводятся как массивы JSON, в противном случае списки с одним элементом будут выведены в виде простых строк). Параметр -a подразумевается, если используются параметры -g или -G, в противном случае он игнорируется и теги с идентичными именами JSON подавляются. (-g4 может использоваться, чтобы гарантировать, что все теги имеют уникальные имена JSON.) Добавление опции -D или -H изменяет значения тегов на объекты JSON с полями «val» и «id», а добавление -l добавляет «desc» поле и поле «num», если числовое значение отличается от преобразованного «val». Опция -b может быть добавлена для вывода двоичных данных, закодированных в base64, если необходимо (обозначено ASCII «base64:» как первые 7 байтов значения), и -t может быть добавлена для включения информации таблицы тегов (смотрите опцию -t для подробностей). Выходными данными JSON является UTF-8 независимо от любой опции -L или -charset, но проверка UTF-8 отключена, если указан набор символов, отличный от UTF-8.

Если указан ФАЙЛ_JSON, файл импортируется, и определения тегов из файла используются для установки значений тегов для каждого файла. Специальная запись «SourceFile» в каждом объекте JSON связывает информацию с конкретным целевым файлом. Объект с отсутствующим SourceFile или SourceFile со знаком «*» определяет теги по умолчанию для всех целевых файлов, которые объединяются с любыми тегами, указанными для конкретного обрабатываемого SourceFile. Импортированный файл JSON должен иметь тот же формат, что и экспортированные файлы JSON, за исключением того, что параметр -g несовместим с форматом файла импорта (используйте вместо этого -G). Кроме того, имена тегов во входном файле JSON могут иметь суффикс «#», чтобы отключить преобразование печати.

В отличие от импорта CSV, пустые значения не игнорируются и приводят к записи пустого значения, если это поддерживается конкретным типом метаданных. Теги удаляются с помощью опции -f и установки значения тега на «-» (или на параметр MissingTagValue, если использовался этот параметр API). Импорт с -j+=ФАЙЛ_JSON приводит к добавлению новых значений в существующие списки.

-l (-long)

Использовать длинный двухстрочный выходной формат в стиле Canon. Добавляет описание и непреобразованное значение (если оно отличается от преобразованного значения) в вывод XML, JSON или PHP при использовании -X, -j или -php. Также можно комбинировать с -listf, -listr или -listwf для добавления описаний типов файлов.

-L (-latin)

Использовать кодировку Windows Latin1 (cp1252) для значений тега вывода вместо UTF-8, которая по умолчанию. При записи, -L указывает, что значения входящего текста — Latin1 вместо UTF-8. Эквивалентно «-charset latin».

-lang [ЯЗЫК]

Установит текущий язык для описаний тегов и преобразованных значений. ЯЗЫК — это «de», «fr», «ja» и т. д. Используйте -lang без других аргументов, чтобы получить список доступных языков. Если -lang не указан, языком по умолчанию является «en». Обратите внимание, что имена тегов/групп всегда на английском языке, независимо от параметра -lang, а перевод предупреждений/сообщений об ошибках ещё не реализован. Также можно комбинировать с -listx для вывода описаний только на одном языке.

По умолчанию ExifTool использует кодировку UTF-8 для специальных символов, но для вызова других кодировок можно использовать параметр -L или -charset. Обратите внимание, что ExifTool использует Unicode::LineBreak, если он доступен, чтобы помочь сохранить выравнивание столбцов в выводе обычного текста для языков с набором символов переменной ширины.

Даже для доступных языков переводы завершены не полностью (это касается и русского языка) и вы можете помочь автору дополнить перевод. Как создать файл с переводом описано в руководстве ExifTool (man exiftool).

-listItem ИНДЕКС

Для тегов типа списка это приводит к извлечению только элемента с указанным индексом. ИНДЕКС равен 0 для первого элемента в списке. Отрицательные индексы также могут использоваться для ссылки на элементы с конца списка. Не влияет на однозначные теги. Также применяется к значениям тегов при копировании из тега и в -if условиях.

-n (--printConv)

Отключить преобразование печати для всех тегов. По умолчанию извлечённые значения конвертируются в более удобный для чтения формат, но опция -n отключает это преобразование, показывая машиночитаемые значения. Например:

                exiftool -Orientation -S a.jpg
                Orientation: Rotate 90 CW

                exiftool -Orientation -S -n a.jpg
                Orientation: 6

Преобразование печати также можно отключить для каждого тега, добавив к имени тега суффикс символа "#":

                exiftool -Orientation# -Orientation -S a.jpg
                Orientation: 6
                Orientation: Rotate 90 CW

Эти методы также могут использоваться для отключения обратного преобразования печати при записи. Например, все следующие команды имеют одинаковый эффект:

                exiftool -Orientation='Rotate 90 CW' a.jpg
                exiftool -Orientation=6 -n a.jpg
                exiftool -Orientation#=6 a.jpg

-p ФАЙЛ_ФОРМАТА или СТРОКА (-printFormat)

Вывод на печать в формате, заданном данным файлом или строкой. Аргумент интерпретируется как строка, если файл с таким именем не существует, и в этом случае строка загружается из содержимого файла. Имена тегов в файле или строке формата начинаются с символа «$» и могут содержать имена ведущих групп и/или завершающий знак «#» (для отключения преобразования печати). Регистр не важен. Фигурные скобки «{}» могут использоваться вокруг имени тега, чтобы отделить его от последующего текста. Используйте $$ для обозначения символа «$» и $/ для новой строки.

Можно использовать несколько опций -p, каждая из которых выводит строку (или более) текста. Строки, начинающиеся с «#[HEAD]» и «#[TAIL]», выводятся перед первым обработанным файлом и после последнего обработанного файла соответственно. Строки, начинающиеся с «#[SECT]» и «#[ENDS]», выводятся до и после каждого раздела файлов. Раздел определяется как группа последовательных файлов с одинаковым заголовком раздела (например, файлы группируются по каталогам, если «#[SECT]» содержит $directory). Строки, начинающиеся с «#[BODY]» и строки, не начинающиеся с «#», выводятся для каждого обработанного файла. Строки, начинающиеся с «#[IF]», не выводятся, но все строки BODY пропускаются, если какой-либо тег в строке IF не существует. Остальные строки, начинающиеся с "#", игнорируются. Например, этот файл формата:

                # это строка комментария
                #[HEAD]-- Сгенерирован в ExifTool $exifToolVersion --
                File: $FileName - $DateTimeOriginal
                (f/$Aperture, ${ShutterSpeed}s, ISO $EXIF:ISO)
                #[TAIL]-- end --

с помощью этой команды:

exiftool -p test.fmt a.jpg b.jpg

производит такой вывод:

                -- Сгенерирован в ExifTool 12.10 --
                File: a.jpg - 2003:10:31 15:44:19
                (f/5.6, 1/60s, ISO 100)
                File: b.jpg - 2006:05:23 11:57:38
                (f/8.0, 1/13s, ISO 100)
                -- end --

Значения тегов типа List с несколькими элементами и тегов ярлыков, представляющих несколько тегов, объединяются в соответствии с настройкой параметра -sep при интерполяции в строку.

Когда -ee (-extractEmbedded) комбинируется с -p, встроенные документы эффективно обрабатываются как отдельные входные файлы.

Если указанный тег не существует, выдаётся незначительный предупреждение и строка с отсутствующим тегом не печатается. Однако опция -f может использоваться для установки значения отсутствующих тегов на «-» (но это может быть настроено с помощью опции API MissingTagValue), или опция -m может использоваться для игнорирования незначительных предупреждений и оставления отсутствующих значений пустыми. В качестве альтернативы можно использовать «-q -q», чтобы просто подавить предупреждающие сообщения.

«Расширенное форматирование» можно использовать для изменения значений отдельных тегов с помощью опции -p.

-php

Форматировать вывод в виде массива PHP. Опции -g, -G, -D, -H, -l, -sep и -struct комбинируются с -php, а повторяющиеся теги обрабатываются так же, как и с параметром -json. Кроме того, для вывода двоичных данных можно добавить параметр -b, а для включения информации таблицы тегов можно добавить -t (подробности смотрите в описании опции -t). Вот простой пример, показывающий, как это можно использовать в скрипте PHP:

                <?php
                eval('$array=' . `exiftool -php -q image.jpg`);
                print_r($array);
                ?>

-s[ЧИСЛО] (-short)

Короткий выходной формат. Печатает имена тегов вместо описаний. Добавьте ЧИСЛО или до 3-х опций -s для ещё более коротких форматов:

                -s1 или -s        - печатать имена тегов вместо описаний
                -s2 или -s -s     - без дополнительных пробелов для выравнивания значений по столбцам
                -s3 или -s -s -s  - выводить только значения (без имён тегов)

Также эффективен в сочетании с параметрами -t, -h, -X или -listx.

-S (-veryShort)

Очень короткий формат. То же, что и опция -s2 или две -s. Имена тегов печатаются вместо описаний, и к значениям, выровненным по столбцам, не добавляются лишние пробелы.

-sep СТРОКА (-separator)

Укажет разделительную строку для элементов в тегах типа списка. При чтении по умолчанию элементы списка объединяются с помощью «,». При записи эта опция заставляет значения, присвоенные тегам типа списка, разделяться на отдельные элементы в каждой подстроке, соответствующей СТРОКЕ (в противном случае они не разделяются по умолчанию). Пробелы в СТРОКЕ соответствуют нулю или более былым пробелам в значении.

Обратите внимание, что пустой разделитель ("") разрешён и будет соединять элементы без разделителя при чтении или разделять значение на отдельные символы при записи.

Для чисто двоичного вывода (-b используется без -j, -php или -X) первая опция -sep задаёт разделитель элементов списка, а вторая опция -sep указывает терминатор в конце списка (или после каждого значение, если не список). В этих строках символы «\n», «\r» и «\t» могут использоваться для обозначения новой строки, возврата каретки и табуляции соответственно. По умолчанию элементы двоичного списка разделяются новой строкой, и терминатор не добавляется.

-sort, --sort

Сортировать вывод по описанию тега или по имени тега, если используется опция -s. При сортировке по описанию порядок сортировки будет зависеть от параметра -lang. Без опции -sort теги отображаются в том порядке, в котором они были указаны в командной строке, или, если не указаны, в том порядке, в котором они были извлечены из файла. По умолчанию при сочетании с опцией -g или -G теги организованы по группам, но эту группировку можно отключить с помощью --sort.

-struct, --struct

Выводит структурированную информацию XMP вместо объединения в отдельные теги. Этот параметр хорошо работает в сочетании с выходными форматами XML (-X) и JSON (-j). Для других форматов вывода структуры и списки XMP сериализуются в тот же формат, что и при записи структурированной информации (подробности смотрите на https://exiftool.org/struct.html). При копировании структурированные теги копируются по умолчанию, если только --struct не используется для отключения этой функции (хотя сглаженные теги все ещё могут быть скопированы, указав их индивидуально, если не используется -struct). Эти параметры не действуют при назначении новых значений, поскольку при записи всегда можно использовать как плоские, так и структурированные теги.

-t (-tab)

Вывести список описаний/значений, разделённых табуляцией (полезно при импорте базы данных). Можно комбинировать с -s для печати имён тегов вместо описаний или -S для печати только значений тегов, разделённых табуляцией в одной строке. Опцию -t можно комбинировать с -j, -php или -X для добавления информации таблицы тегов («table», «id» тега и «index» для случаев, когда существует несколько условных тегов с одним и тем же идентификатором).

-T (-table)

Выводить значения тегов в виде таблицы. Эквивалентно -t -S -q -f.

-v[ЧИСЛО] (-verbose)

Печатать подробные сообщения. ЧИСЛО указывает уровень детализации в диапазоне от 0 до 5, при этом более высокие числа более подробны. Если ЧИСЛО не указано, то каждая опция -v увеличивает уровень детализации на 1. При любом уровне больше 0 большинство других параметров игнорируются, и нормальный вывод на консоль подавляется, если только не извлечены определённые теги. Использование -v0 приводит к тому, что буфер вывода консоли очищается после каждой строки (что может быть полезно, чтобы избежать задержек при передаче вывода exiftool по конвейеру), и при записи выводит имя каждого обработанного файла. Также смотрите опцию -progress.

-w[+|!] РАСШИРЕНИЕ или ФОРМАТ (-textOut)

Записывать вывод консоли в файлы с именами, заканчивающимися на РАСШИРЕНИЕ, по одному для каждого исходного файла. Имя выходного файла получается путём замены расширения исходного файла (включая «.») На указанное расширение (и «.» добавляется в начало РАСШИРЕНИЕЯ если он ещё не содержит его). В качестве альтернативы можно использовать строку ФОРМАТ, чтобы дать больше контроля над именем выходного файла и каталогом. В строке формата %d, %f и %e представляют каталог, имя файла и расширение исходного файла, а %c представляет собой номер копии, который автоматически увеличивается, если файл уже существует. %d включает завершающий "/", если необходимо, но %e не включает начальный ".". Например:

                -w %d%f.txt       # такой же эффект как "-w txt"
                -w dir/%f_%e.out  # записывает файлы в "dir" как "FILE_EXT.out"
                -w dir2/%d%f.txt  # записывает в "dir2", сохраняет структуру директории
                -w a%c.txt        # записывает в "a.txt" или "a1.txt" или "a2.txt"...

Существующие файлы не будут изменены, если к имени опции не будет добавлен восклицательный знак (например, -w! или -textOut!) чтобы перезаписать файл, или знак плюса (например, -w+ или -textOut+) чтобы добавить к существующему файлу. Оба символа могут использоваться одновременно (например, -w+! или -textOut+!) для перезаписи выходных файлов, которые не существовали до выполнения команды, и добавления выходных данных из нескольких исходных файлов. Например, чтобы записать один выходной файл для всех исходных файлов в каждом каталоге:

exiftool -filename -createdate -T -w+! %d/out.txt -r ДИРЕКТОРИЯ

Коды формата с заглавной буквы %D, %F, %E и %C предоставляют несколько иные альтернативы версиям с нижним регистром. %D не включает завершающий символ «/»,%F — полное имя файла, включая расширение,%E включает начальную «.», А %C увеличивает счётчик для каждого обработанного файла (смотрите ниже).

Примечания:

1) В BAT-файле Windows символ «%» представлен как «%%», поэтому такой аргумент, как «%d%f.txt», записывается как «%%d%%f.txt».

2) Если аргумент для -w не содержит допустимого кода формата (например,%f), то он интерпретируется как расширение файла. Невозможно указать в качестве аргумента простое имя файла — создание одного выходного файла из нескольких исходных файлов обычно выполняется с помощью перенаправления оболочки, т.е.)

exiftool ФАЙЛ1 ФАЙЛ2 ... > out.txt

Но при необходимости можно использовать пустой код формата, чтобы аргумент интерпретировался как строка формата, и тот же результат может быть получен без использования перенаправления оболочки:

exiftool -w+! %0fout.txt ФАЙЛ1 ФАЙЛ2 ...

Продвинутые возможности:

Подстроку исходного имени файла, каталога или расширения можно взять, указав ширину поля сразу после символа «%». Если ширина отрицательная, подстрока берётся с конца. Позиция подстроки (символы, которые следует игнорировать в начале или конце строки) может быть задана вторым необязательным значением после десятичной точки. Например:

                Имя входного файла     Описатель формата    Имя выходного файла
                ----------------    ----------------    ----------------
                Picture-123.jpg     %7f.txt             Picture.txt
                Picture-123.jpg     %-.4f.out           Picture.out
                Picture-123.jpg     %7f.%-3f            Picture.123
                Picture-123a.jpg    Meta%-3.1f.txt      Meta123.txt

(Обратите внимание, что специальные символы могут иметь ширину больше единицы.)

Для %d и %D спецификаторы ширины/позиции поля могут применяться к уровням каталогов вместо позиции подстроки с использованием двоеточия вместо десятичной точки в спецификаторе формата. Например:

                Исходная папка     Формат   Результат       Примечания
                ------------   ------   ----------   ------------------
                pics/2012/02   %2:d     pics/2012/   take top 2 levels
                pics/2012/02   %-:1d    pics/2012/   up one directory level
                pics/2012/02   %:1d     2012/02/     ignore top level
                pics/2012/02   %1:1d    2012/        take 1 level after top
                pics/2012/02   %-1:D    02           bottom level folder name
                /Users/phil    %:2d     phil/        ignore top 2 levels

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

Для %c эти модификаторы имеют разные эффекты. Если задана ширина поля, номер копии дополняется нулями до указанной ширины. Ведущий знак «-» добавляет тире перед номером копии, а знак «+» добавляет подчёркивание. По умолчанию номер копии не указывается в первом файле с заданным именем, но это можно изменить, добавив десятичную точку к модификатору. Например:

                -w A%-cZ.txt      # AZ.txt, A-1Z.txt, A-2Z.txt ...
                -w B%5c.txt       # B.txt, B00001.txt, B00002.txt ...
                -w C%.c.txt       # C0.txt, C1.txt, C2.txt ...
                -w D%-.c.txt      # D-0.txt, D-1.txt, D-2.txt ...
                -w E%-.4c.txt     # E-0000.txt, E-0001.txt, E-0002.txt ...
                -w F%-.4nc.txt    # F-0001.txt, F-0002.txt, F-0003.txt ...
                -w G%+c.txt       # G.txt, G_1.txt G_2.txt ...
                -w H%-lc.txt      # H.txt, H-b.txt, H-c.txt ...
                -w I.%.3uc.txt    # I.AAA.txt, I.AAB.txt, I.AAC.txt ...

Специальная функция позволяет увеличивать количество копий для каждого обработанного файла, используя %C (верхний регистр) вместо %c. Это позволяет добавлять последовательный номер к именам выходных файлов, даже если имена разные. Для %C копия с нулевым номером не пропускается, как для %c. Начальный знак «-» приводит к тому, что число сбрасывается в начале каждого нового каталога, а знак «+» не действует. Число перед десятичным знаком даёт начальный индекс, число после десятичного разряда даёт ширину поля. В следующих примерах показаны имена выходных файлов при использовании с командой «exiftool rose.jpg star.jpg jet.jpg ...»:

                -w %C%f.txt       # 0rose.txt, 1star.txt, 2jet.txt
                -w %f-%10C.txt    # rose-10.txt, star-11.txt, jet-12.txt
                -w %.3C-%f.txt    # 000-rose.txt, 001-star.txt, 002-jet.txt
                -w %57.4C%f.txt   # 0057rose.txt, 0058star.txt, 0059jet.txt

Все коды формата могут быть изменены с помощью «l» или «u», чтобы указать нижний или верхний регистр соответственно (например, %le для расширения файла в нижнем регистре). При использовании для изменения %c или %C, числа меняются на алфавитное основание (смотрите пример H выше). Кроме того,%c и %C могут быть изменены на «n» для подсчёта с использованием натуральных чисел, начиная с 1, вместо 0 (смотрите пример F выше).

Этот же синтаксис ФОРМАТА используется с опциями -o и -tagsFromFile, хотя %c и %C действительны только для имён выходных файлов.

-W[+|!] ФОРМАТ (-tagOut)

Эта расширенная версия опции -w позволяет создавать отдельный выходной файл для каждого извлечённого тега. Смотрите также документацию по опции -w выше для получения подробной информации об основных функциях. Здесь перечислены различия между -W и -w:

1) При использовании -W для каждого извлечённого тега создаётся новый выходной файл.

2) -W поддерживает три дополнительных кода формата: %t, %g и %s, которые представляют имя тега, имя группы и предлагаемое расширение для выходного файла (в зависимости от формата данных). За кодом %g может следовать одна цифра, чтобы указать номер семейства группы (например, %g1), в противном случае предполагается семейство 0. Спецификаторы ширины/позиции/регистра подстроки могут использоваться с этими кодами формата точно так же, как с %f и %e.

3) Аргумент для -W интерпретируется как имя файла, если он не содержит кодов формата. (Для -w это будет расширение файла.) Это изменение позволяет указать простое имя файла, которое в сочетании с функцией добавления предоставляет метод записи метаданных из нескольких исходных файлов в один выходной файл без необходимости перенаправления вывода в оболочке. Например, следующие пары команд дают одинаковый результат:

                # перезапись существующего текстового файла
                exiftool test.jpg > out.txt     # перенаправление вывода в оболочке
                exiftool test.jpg -W+! out.txt  # эквивалент опции -W

                # добавление в существующий текстовый файл
                exiftool test.jpg >> out.txt    # перенаправление вывода в оболочке
                exiftool test.jpg -W+ out.txt   # эквивалент опции -W

4) Добавление опции -v к -W отправляет список тегов и имена выходных файлов на консоль вместо того, чтобы давать подробный дамп всего файла. (За исключением добавления всего вывода в один файл для каждого исходного файла с помощью -W+ с выходным файлом в соответствии с ФОРМАТОМ, который не содержит %t, $g или %s.)

5) Отдельные элементы списка сохраняются в отдельных файлах, когда -W комбинируется с -b, но учтите, что для создания отдельных файлов в соответствии с ФОРМАТОМ необходимо использовать %c или %C, чтобы дать файлам уникальные имена.

-Wext РАСШИРЕНИЕ, --Wext РАСШИРЕНИЕ (-tagOutExt)

Эта опция используется для указания типа выходных файлов, записанных с помощью опции -W. Выходной файл записывается, только если предложенное расширение соответствует РАСШИРЕНИЮ. Для записи файлов более одного типа можно использовать несколько параметров -Wext. Используйте --Wext, чтобы записать всё, кроме указанного типа(ов).

-X (-xmlFormat)

Использовать специфичное для ExifTool форматирование RDF/XML для вывода на консоль. Подразумевается опция -a, поэтому дублирующиеся теги извлекаются. Опции форматирования -b, -D, -H, -l, -s, -sep, -struct и -t могут использоваться в сочетании с -X, чтобы повлиять на вывод, но обратите внимание, что идентификатор тега (-D, -H и -t), опции двоичных данных (-b) и структурированного вывода (-struct) не действуют для краткого вывода (-s). Ещё одно ограничение -s заключается в том, что в выводе может отображаться только один тег с заданной группой и именем. Обратите внимание, что параметры идентификатора тега (-D, -H и -t) создают нестандартный RDF/XML, если также не используется параметр -l.

По умолчанию -X выводит плоские теги, поэтому при необходимости следует добавить -struct для сохранения структур XMP. Теги типа списка с несколькими значениями форматируются как RDF Bag, но они объединяются в одну строку при использовании -s или -sep. Использование -L изменяет кодировку XML с «UTF-8» на «windows-1252». Другие настройки -charset изменяют кодировку только при наличии соответствующего стандартного набора символов XML. Опция -b вызывает запись значений двоичных данных, при необходимости закодированных в base64. Опция -t добавляет к выходным данным информацию о таблице тегов (подробнее смотрите в описании опции -t).

Примечание. Этот вывод НЕ совпадает с XMP, потому что он использует динамически генерируемые имена свойств, соответствующие именам тегов ExifTool, а не стандартные свойства XMP. Чтобы вместо этого написать XMP, используйте опцию -o с расширением XMP для выходного файла.

Контроль обработки

-a, --a (-duplicates, --duplicates)

Разрешить (-a) или запретить (--a) извлекать повторяющиеся имена тегов. По умолчанию дублирующиеся теги подавляются при чтении, если не используются параметры -ee или -X или если в файле конфигурации не включена опция Duplicates. Эта опция влияет только на запись, позволяя отображать повторяющиеся сообщения Warning (предупреждения). При копировании всегда извлекаются повторяющиеся теги.

-e (--composite)

Извлекать только существующие теги — не создавать составные теги.

-ee (-extractEmbedded)

Извлекать информацию из встроенных документов в файлы EPS, встроенную информацию EPS и изображения JPEG и Jpeg2000 в файлах PDF, встроенные изображения MPF в файлы JPEG и MPO, потоковые метаданные в видео AVCHD и ветвь ресурсов файлов Mac OS. Подразумевается опция -a. Используйте -g3 или -G3, чтобы идентифицировать исходный документ для извлечённой информации. Встроенные документы, содержащие вложенные документы, обозначаются тире в названии группы семейства 3 (например, «Doc2-3» — это 3-й суб-документ 2-го встроенного документа). Обратите внимание, что этот параметр может существенно увеличить время обработки, особенно для файлов PDF с большим количеством встроенных изображений или видео с потоковыми метаданными.

При использовании с -ee опция -p оценивается для каждого встроенного документа, как если бы это был отдельный входной файл. Это позволяет, например, создавать журналы GPS-треков на основе метаданных в видео по времени. Примеры смотрите на https://exiftool.org/geotag.html#Inverse.

-ext[+] РАСШИРЕНИЕ, --ext РАСШИРЕНИЕ (-extension)

Обрабатывать только файлы с (-ext) или без (--ext) указанного расширения. Может быть несколько параметров -ext и --ext. Можно добавить знак плюса (например, -ext+), чтобы добавить указанное расширение к обычно обрабатываемым файлам. РАСШИРЕНИЕ может начинаться с ведущего символа «.», Который игнорируется. Регистр букв не имеет значения. Можно использовать «*» для обработки файлов с любым расширением (или вообще без него), как в последних трёх примерах:

                exiftool -ext JPG ДИРЕКТОРИЯ             # обрабатывать только файлы JPG
                exiftool --ext cr2 --ext dng ДИРЕКТОРИЯ  # поддерживаемые файлы, кроме CR2/DNG
                exiftool -ext+ txt ДИРЕКТОРИЯ            # поддерживаемые файлы плюс TXT
                exiftool -ext "*" ДИРЕКТОРИЯ             # обработать все файлы
                exiftool -ext "*" --ext xml ДИРЕКТОРИЯ   # обрабатывать все файлы, кроме XML
                exiftool -ext "*" --ext . ДИРЕКТОРИЯ     # все, кроме тех, у кого нет расширения

Использование этой опции имеет два основных преимущества по сравнению с указанием «*.РАСШИРЕНИЕ» в командной строке: 1) Она применяется к файлам в подкаталогах в сочетании с опцией -r. 2) Параметр -ext нечувствителен к регистру, что полезно при обработке файлов в файловых системах с учётом регистра.

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

-F[СМЕЩЕНИЕ] (-fixBase)

Закрепит основание для смещения заметок производителя. Распространённая проблема с некоторыми редакторами изображений заключается в том, что смещения в примечаниях производителя не корректируются должным образом при изменении файла. Это может привести к извлечению неправильных значений для некоторых записей создателя при чтении отредактированного файла. Эта опция позволяет указать целочисленное СМЕЩЕНИЕ для настройки базового смещения заметок производителя. Если СМЕЩЕНИЕ не задано, ExifTool выбирает правильное основание. Обратите внимание, что exiftool автоматически исправит смещения для изображений, в которых хранится исходная информация о смещении (например, более новые модели Canon). Смещения фиксируются на постоянной основе, если при записи EXIF в изображение используется, например, -F)

exiftool -F -exif:resolutionunit=inches image.jpg

-fast[ЧИСЛО]

Увеличивает скорость извлечения информации. С -fast (или -fast1) ExifTool не будет сканировать до конца изображения JPEG чтобы проверить наличие трейлера AFCP или PreviewImage, или пропустит первый комментарий в изображениях GIF или аудио/видео данных в файлах WAV/AVI для поиска дополнительных метаданных. Эти преимущества скорости невелики при чтении изображений непосредственно с диска, но могут быть существенными при передаче изображений по конвейеру через сетевое соединение. Для более существенного повышения скорости -fast2 также заставляет exiftool избегать извлечения любой информации заметок производителя в EXIF. Опция -fast3 позволяет избежать извлечения метаданных из файла и возвращает только псевдосистемные теги, но по-прежнему читает заголовок файла, чтобы получить обоснованное предположение о FileType. Опция -fast4 даже не читает заголовок файла и возвращает только системные теги и FileType в зависимости от расширения файла. Не действует при записи.

Обратите внимание, что отдельный параметр -fast может использоваться для оценки условия -if или при упорядочивании файлов с параметром -fileOrder. Подробнее смотрите в описании опций -if и -fileOrder.

-fileOrder[ЧИСЛО] [-]ТЕГ

Установит порядок обработки файлов в соответствии с отсортированным значением указанного тега. Например, чтобы обработать файлы по дате:

exiftool -fileOrder DateTimeOriginal ДИРЕКТОРИЯ

Дополнительные опции -fileOrder могут быть добавлены для вторичных ключей сортировки. Числа сортируются численно, а все остальные значения сортируются по алфавиту. Файлы, в которых отсутствует указанный тег, сортируются последними. Порядок сортировки можно изменить на обратный, поставив перед именем тега знак «-» (например, «-fileOrder -createdate»). Преобразование печати отсортированных значений отключается параметром -n или добавлением «#» к имени тега. Другие параметры форматирования (например, -d) не влияют на отсортированные значения. Обратите внимание, что параметр -fileOrder может иметь большое влияние на производительность, так как он включает дополнительный проход обработки каждого файла, но это влияние можно уменьшить, указав ЧИСЛО для уровня -fast, используемого на этапе извлечения метаданных. Например, -fileOrder4 может использоваться, если ТЕГ является псевдосистемным тегом. Если используется несколько параметров -fileOrder, извлечение выполняется на самом низком уровне -fast. Обратите внимание, что если указано несколько входных каталогов, то файлы сортируются по границам каталогов.

-i ДИРЕКТОРИЯ (-ignore)

Игнорировать указанное имя каталога. ДИРЕКТОРИЯ может быть именем отдельной папки или полным путём. Если указан полный путь, он должен точно соответствовать тегу Directory, чтобы его можно было игнорировать. Используйте несколько опций -i, чтобы игнорировать более одного имени каталога. Может быть указано специальное значение ДИРЕКТОРИИ «SYMLINKS» (чувствительно к регистру) для игнорирования символических ссылок при использовании опции -r.

-if[ЧИСЛО] ВЫРАЖЕНИЕ

Задаёт условие для оценки перед обработкой каждого ФАЙЛА. ВЫРАЖЕНИЕ — это логическое выражение, подобное Perl, содержащее имена тегов с префиксом «$». Оно оценивается с помощью тегов из каждого ФАЙЛА по очереди, и файл обрабатывается, только если выражение возвращает истину. В отличие от имён переменных Perl, имена тегов не чувствительны к регистру и могут содержать дефис. Кроме того, имена тегов могут иметь имена групп в начале, разделённые двоеточиями, и/или символ «#» в конце для отключения преобразования печати. Выражение $ГРУППА:all оценивается как 1, если какой-либо тег существует в указанной «ГРУППЕ», или 0 в противном случае (смотрите примечание 2 ниже). Когда используется несколько опций -if, для обработки файла должны быть выполнены все условия. Возвращает статус выхода 2, если все файлы не соответствуют условию. Ниже приведены несколько примеров:

                # извлекаем выдержку из всех изображений Canon в каталоге
                exiftool -shutterspeed -if '$make eq "Canon"' ДИРЕКТОРИЯ

                # добавить один час ко всем изображениям, созданным 2 апреля 2006 г. или позже
                exiftool -alldates+=1 -if '$CreateDate ge "2006:04:02"' ДИРЕКТОРИЯ

                # установить значение EXIF ISO, если возможно, если оно ещё не установлено
                exiftool '-exif:iso<iso' -if 'not $exif:iso' ДИРЕКТОРИЯ

                # найти изображения, содержащие определённое ключевое слово (без учёта регистра)
                exiftool -if '$keywords =~ /harvey/i' -filename ДИРЕКТОРИЯ

Добавление ЧИСЛО к параметру -if вызывает выполнение отдельного этапа обработки для оценки ВЫРАЖЕНИЕ на уровне -fast, заданном параметром ЧИСЛО (подробности смотрите в документации по параметру -fast). Без ЧИСЛА выполняется только один проход обработки на уровне, заданном параметром -fast. Например, использование -if4 возможно, если ВЫРАЖЕНИЕ использует только теги псевдосистемы, и может значительно ускорить обработку, если достаточное количество файлов не удовлетворяет условию.

Выражение имеет доступ к текущему объекту ExifTool через $self, а также доступны следующие специальные функции, позволяющие сократить обработку файла. Обе функции возвращают значение 1.

Регистр имеет значение для имён функций.

                End()    - завершить обработку после этого файла
                EndDir() - завершить обработку файлов в этом каталоге (несовместимо с опцией B<-fileOrder>)

Примечания:

1) Опции -n и -b также применяются к тегам, используемым в ВЫРАЖЕНИИ.

2) Некоторые блоки двоичных данных не извлекаются, если явно не указано иное. Эти теги недоступны для использования в условии -if, если они также не указаны в командной строке. Альтернативой является использование синтаксиса $ГРУППА:all. (например, используйте $exif:all вместо $exif в ВЫРАЖЕНИИ, чтобы проверить наличие тегов EXIF.)

3) Теги в строке интерполируются так же, как и с опцией -p перед вычислением выражения. В этой интерполяции $/ преобразуется в новую строку, а $$ представляет собой единичный символ «$» (поэтому переменные Perl, если они используются, требуют двойного «$»).

4) Условие может проверять только теги из обрабатываемого файла. Чтобы обработать один файл на основе тегов из другого, необходимо выполнить два шага. Например, чтобы обработать сопроводительные файлы XMP в каталоге «ДИРЕКТОРИЯ» на основе тегов из связанного NEF:

exiftool -if EXPR -p '$directory/$filename' -ext nef ДИРЕКТОРИЯ > nef.txt
exiftool -@ nef.txt -srcfile %d%f.xmp ...

5) Параметр -a не влияет на оценку выражения, а значения повторяющихся тегов доступны только при указании имени группы (например, номера экземпляра семейства 4, например, $Copy1:ТЕГ, $Copy2:ТЕГ, и так далее).

6) Специальный UserParam «OK» доступен для проверки успешности предыдущей команды при использовании -execute и может использоваться как любой другой тег в условии (например, «$OK»).

-m (-ignoreMinorErrors)

Игнорировать мелкие ошибки и предупреждения. Это позволяет записывать в файлы с небольшими ошибками и отключает некоторые проверки, которые могут привести к появлению незначительных предупреждений. Как правило, незначительные ошибки/предупреждения указывают на проблему, игнорирование которой обычно не приводит к потере метаданных. Однако есть исключения, поэтому ExifTool оставляет за вами принятие окончательного решения. Незначительные ошибки и предупреждения обозначаются как «[minor]» в начале сообщения. Предупреждения, которые при игнорировании влияют на обработку, обозначаются как «[Minor]» (с большой буквы «M»). Обратите внимание, что это приводит к тому, что отсутствующие значения в строках -tagsFromFile, -p и -if устанавливаются на пустую строку, а не на неопределённое значение.

-o ВЫХОДНОЙ_ФАЙЛ или ФОРМАТ (-out)

Задаёт имя выходного файла или каталога при записи информации. Без этой опции при записи любых «настоящих» тегов исходный файл переименовывается в «ФАЙЛ_original», а вывод записывается в ФАЙЛ. При записи только «псевдо» тегов FileName и/или Directory, -o заставляет файл копироваться, а не перемещаться, но каталоги, указанные для любого из этих тегов, имеют приоритет над указанным параметром -o.

ВЫХОДНОЙ_ФАЙЛ может быть «-» для записи в стандартный вывод. Имя выходного файла также можно указать с помощью строки ФОРМАТ, в которой %d, %f и %e представляют каталог, имя файла и расширение ФАЙЛА. Также %c можно использовать для добавления номера копии. Смотрите описание опции -w для примеров строк ФОРМАТА.

Выходной файл считается именем каталога, если он уже существует как каталог или если имя заканчивается на «/». При необходимости создаются каталоги вывода. Существующие файлы не будут перезаписаны. Комбинация опции -overwrite_original с -o приводит к стиранию оригинального исходного файла после успешной записи выходного файла.

Особенность этой опции позволяет создавать определённые типы файлов с нуля или с метаданными из другого типа файла. Следующие типы файлов могут быть созданы с использованием этой техники:

XMP, EXIF, EXV, MIE, ICC/ICM, VRD, DR4

Тип выходного файла определяется расширением ВЫХОДНОГО_ФАЙЛА (указывается как «-.РАСШИРЕНИЕ» при записи в стандартный вывод). Затем создаётся выходной файл из комбинации информации в ФАЙЛЕ (как если бы использовалась опция -tagsFromFile) и значений тегов, указанных в командной строке. Если ФАЙЛ не указан, выходной файл может быть создан с нуля, используя только теги, назначенные в командной строке.

-overwrite_original

При записи информации в изображение, перезаписывает исходный ФАЙЛ (вместо того, чтобы сохранять его, добавляя «_original» к имени файла). Внимание: этот параметр следует использовать только в том случае, если у вас уже есть отдельные резервные копии файлов изображений. Перезапись осуществляется путём переименования временного файла для замены оригинала. Это удалит исходный файл и заменит его отредактированной версией за одну операцию. В сочетании с -o эта опция приводит к удалению исходного файла, если выходной файл был успешно записан (то есть файл перемещается, а не копируется).

-overwrite_original_in_place

Аналогично -overwrite_original, за исключением того, что добавлен дополнительный шаг, позволяющий сохранить исходные атрибуты файла. Например, на Mac это приводит к сохранению исходной даты создания файла, типа, создателя, цвета метки, значка, тегов Finder, других расширенных атрибутов и жёстких ссылок на файл (но обратите внимание, что ветвь ресурсов Mac OS всегда сохраняется если специально не удалено с помощью «-rsrc:all=»). Это реализуется путём открытия исходного файла в режиме обновления и замены его данных копией временного файла перед удалением временного. Дополнительный шаг приводит к снижению производительности, поэтому вместо него следует использовать опцию -overwrite_original.

Обратите внимание, что этот параметр возвращается к поведению опции -overwrite_original, когда также записываются теги FileName и/или Directory.

-P (-preserve)

Сохранять дату/время изменения в файловой системе («FileModifyDate») исходного файла при записи. Обратите внимание, что некоторые файловые системы хранят дату создания (например, «FileCreateDate» в системах Windows и Mac), на которую этот параметр не влияет. Эта дата создания сохраняется в системах Windows, где доступны Win32API::File и Win32::API независимо от этого параметра. Для других систем при необходимости можно использовать параметр -overwrite_original_in_place, чтобы сохранить дату создания. Параметр -P заменяется любым значением, записанным в тег FileModifyDate.

-password ПАРОЛЬ

Указывает пароль, чтобы разрешить обработку PDF-документов, защищённых паролем. Если пароль требуется, но не указан, выдаётся предупреждение и документ не обрабатывается. Эта опция игнорируется, если пароль не требуется.

-progress[:[ЗАГОЛОВОК]]

Показывать прогресс при обработке файлов. Без двоеточия опция -progress добавляет счётчик выполнения в скобках после имени каждого обработанного файла, давая текущий номер файла и общее количество файлов для обработки. Подразумевается опция -v0, при которой имена обработанных файлов также печатаются при записи. В сочетании с параметром -if общее количество включает все файлы до применения условия, но имена файлов, которые не выполняются, не печатаются.

Если за ней следует двоеточие (то есть -progress:), заголовок окна консоли устанавливается в соответствии с указанной строкой ЗАГОЛОВОК. Если ЗАГОЛОВОК не указан, предполагается, что по умолчанию используется строка ЗАГОЛОВКА «ExifTool %p%%». В этой строке %f представляет имя файла, %p — прогресс в процентах, %r — прогресс в виде отношения, %##b — индикатор выполнения шириной «##» (20 символов, если «##» пропущено), а %% - это символ %. Может сочетаться с опцией -progress без двоеточия, чтобы также отображать счётчик прогресса в сообщениях консоли. (Примечание: для правильной работы этой функции в Mac/Linux, stderr должен идти в консоль.)

-q (-quiet)

Тихая обработка. Один -q подавляет нормальные информационные сообщения, а второй -q также подавляет предупреждения. Сообщения об ошибках не могут быть подавлены, хотя незначительные ошибки могут быть понижены до предупреждений с помощью опции -m, которая затем может быть подавлена с помощью «-q -q».

-r[.] (-recurse)

Рекурсивно обрабатывать файлы в подкаталогах. Имеет смысл, только если ФАЙЛ — это имя каталога. Подкаталоги с именами, начинающимися с «.» не обрабатываются, если только «.» добавляется к имени опции (например, -r. или -recurse.).

По умолчанию exiftool также будет следовать символическим ссылкам на каталоги, если это поддерживается системой, но это можно отключить с помощью «-i SYMLINKS» (подробности смотрите в описании опции -i). Комбинируйте её с опциями -ext для управления типами обрабатываемых файлов.

-scanForXMP

Сканировать все файлы (даже неподдерживаемые форматы) на предмет информации XMP, если она ещё не найдена. В сочетании с параметром -fast сканируются только неподдерживаемые типы файлов. Предупреждение: сканирование больших файлов может занять много времени.

-u (-unknown)

Извлечь значения неизвестных тегов. Добавьте ещё одну опцию -u, чтобы также извлечь неизвестную информацию из блоков двоичных данных. Этот параметр применяется к тегам с числовыми идентификаторами тегов и вызывает создание имён тегов, таких как «Exif_0xc5d9», для неизвестной информации. Он не влияет на типы информации, которые имеют удобочитаемые идентификаторы тегов (например, XMP), поскольку неизвестные теги автоматически извлекаются из этих форматов.

-U (-unknown2)

Извлекать значения неизвестных тегов, а также неизвестную информацию из некоторых блоков двоичных данных. Это то же самое, что и два параметра -u.

-wm РЕЖИМ (-writeMode)

Установит режим для написания/создания тегов. РЕЖИМ — это строка из одного или нескольких символов из списка ниже. Режим записи по умолчанию — «wcg».

                 w — Записать существующие теги
                 c — Создать новые теги
                 g — При необходимости создавать новые группы

Например, используйте «-wm cg» для только создания новых тегов (и избегать редактирование существующих).

Уровень группы — это уровень подкаталога в структуре метаданных. Для XMP или IPTC это полный блок XMP/IPTC (группа семейства 0), но для EXIF это индивидуальный IFD (группа семейства 1).

-z (-zip)

При чтении приводит к извлечению информации из сжатых изображений .gz и .bz2 (только одно изображение на архив; требуется наличие gzip и bzip2). При записи вызывает запись сжатой информации, если это поддерживается форматом метаданных (например, сжатые текстовые метаданные в PNG), отключает рекомендованное заполнение во встроенном XMP (сохраняет 2424 байта при записи XMP в файл) и записывает XMP в сокращённом формате — эквивалент настройки API Compress=1 и Compact=«NoPadding,Shorthand».

Другие опции

-@ ФАЙЛ_С_АРГУМЕНТАМИ

Прочитать аргументы командной строки из указанного файла. Файл содержит по одному аргументу на строку (НЕ по одной опции на строку — некоторые опции требуют дополнительных аргументов, и все аргументы должны быть размещены в отдельных строках).

Пустые строки и строки, начинающиеся с «#», игнорируются (если они не начинаются с «#[CSTR]», и в этом случае остальная часть строки обрабатывается как строка C, что позволяет использовать стандартные экранированные-последовательности C, такие как «\n» для перевод строки).

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

ФАЙЛ_С_АРГУМЕНТАМИ может существовать относительно текущего каталога или каталога exiftool, если не указан абсолютный путь.

Например, следующий ФАЙЛ_С_АРГУМЕНТАМИ установит значение Copyright на «Copyright YYYY, Phil Harvey», где «YYYY» — это год CreateDate:

                -d
                %Y
                -copyright<Copyright $createdate, Phil Harvey

Аргументы в ФАЙЛЕ_С_АРГУМЕНТАМИ ведут себя точно так же, как если бы они были введены в расположение опции -@ в командной строке, за исключением того, что опции -config и -common_args нельзя использовать в ФАЙЛЕ_С_АРГУМЕНТАМИ.

-k (-pause)

Сделать паузу с сообщением «-- press any key --» или «-- press RETURN --» (в зависимости от вашей системы) перед завершением. Этот параметр используется для предотвращения закрытия окна команд при запуске в качестве приложения Windows с перетаскиванием.

-list, -listw, -listf, -listr, -listwf, -listg[ЧИСЛО], -listd, -listx

Распечатать список всех допустимых имён тегов (-list), всех доступных для записи имён тегов (-listw), всех поддерживаемых расширений файлов (-listf), всех распознанных расширений файлов (-listr), всех доступных для записи расширений файлов (-listwf), всех группы тегов [в указанном семействе] (-listg [ЧИСЛО]), все удаляемые группы тегов (-listd) или база данных XML с деталями тегов, включая языковые переводы (-listx). За параметрами -list, -listw и -listx может следовать дополнительный аргумент в форме «-ГРУППА», чтобы перечислить только теги в определённой группе, где «ГРУППА» — это одно или несколько имён групп семейства 0–2 ( кроме групп EXIF IFD) через двоеточие. С -listg можно указать ЧИСЛО для указания семейства групп, в противном случае предполагается семейство 0. Опцию -l можно комбинировать с -listf, -listr или -listwf для добавления описаний файлов в список. Опцию -lang можно комбинировать с -listx для вывода описаний на одном языке. Вот некоторые примеры:

                -list               # перечислить все имена тегов
                -list -EXIF:All     # перечислить все теги EXIF
                -list -xmp:time:all # перечислить все теги XMP, относящиеся ко времени
                -listw -XMP-dc:All  # перечислить все доступные для записи теги XMP-dc
                -listf              # перечислить все поддерживаемые расширения файлов
                -listr              # перечислить все распознанные расширения файлов
                -listwf             # перечислить все доступные для записи расширения файлов
                -listg1             # перечислить все группы в семье 1
                -listd              # перечислить все удаляемые группы
                -listx -EXIF:All    # список базы данных тегов EXIF в формате XML
                -listx -XMP:All -s  # перечислить короткую XML-базу данных тегов XMP

В сочетании с -listx опция -s сокращает вывод, опуская описания и значения (как в последнем примере выше), а -f добавляет атрибут «flags», если это применимо. Флаги отформатированы как список следующих возможных значений, разделённых запятыми: Avoid, Binary, List, Mandatory, Permanent, Protected, Unknown и Unsafe (смотрите документацию по именам тегов). Для тегов XMP List тип списка (Alt, Bag или Seq) добавляется к флагам, а теги сглаженной структуры обозначаются флагом Flattened.

Обратите внимание, что ни одна из опций -list не требует входного ФАЙЛА.

-ver

Вывести номер версии exiftool. Параметр -v может быть добавлен для вывода дополнительной системной информации (смотрите файл README полного распространяемого пакета программы для получения дополнительных сведений о дополнительных библиотеках) или -v2, чтобы также вывести список подключаемых директорий Perl.

--

Обозначает конец опций. Любые оставшиеся аргументы рассматриваются как имена файлов, даже если они начинаются с дефиса («-»).

Особые возможности

-geotag ФАЙЛ_С_ТРЕКОМ

Геотеги изображений из указанного файла журнала GPS-трека. Использование опции -geotag эквивалентно записи значения в тег «Geotag». Положение GPS интерполируется из трека во время, указанное значением, записанным в тег «Geotime». Если «Geotime» не указано, значение копируется из «DateTimeOriginal#» («#» добавляется для копирования неформатированного значения, чтобы избежать возможных конфликтов с опцией -d). Например, следующие две команды эквивалентны:

exiftool -geotag trk.log image.jpg
exiftool -geotag trk.log "-Geotime<DateTimeOriginal#" image.jpg

Когда значение «Geotime» преобразовано в UTC, используется часовой пояс локальной системы, если только значение даты/времени не содержит часовой пояс. Запись «Geotime» приводит к записи следующих тегов (при условии, что они могут быть вычислены из журнала треков и поддерживаются форматом метаданных пункта назначения): GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef, GPSAltitude, GPSAltitudeRef, GPSDateStamp, GPSTimeStamp, GPSDateTime, GPSTrack, GPSTrackRef, GPSSpeed, GPSSpeedRef, GPSImgDirection, GPSImgDirectionRef, GPSPitch, GPSRoll, AmbientTemperature и CameraElevationAngle. По умолчанию теги создаются в EXIF и обновляются в XMP, только если они уже существуют. Однако можно указать «EXIF:Geotime» или «XMP:Geotime» для записи только тегов EXIF или XMP соответственно. Обратите внимание, что GPSPitch и GPSRoll нестандартны и чтобы быть записанными требуют тегов, определённых пользователем.

Тег «Geosync» может использоваться для определения поправки времени, которая применяется к каждому значению «Geotime» для синхронизации со временем GPS. Например, следующая команда компенсирует время изображения, которое отстаёт от GPS на 1 минуту 20 секунд:

exiftool -geosync=+1:20 -geotag a.log ДИРЕКТОРИЯ

Расширенные функции «Geosync» позволяют производить линейную коррекцию временного дрейфа и синхронизацию с изображениями, ранее отмеченными геотегами. Смотрите документацию в файле «Geotag.html» в полном распространяемом пакете ExifTool для получения дополнительной информации.

Для объединения данных журнала GPS-трека можно использовать несколько параметров -geotag. Кроме того, параметр -geotag может использоваться для загрузки нескольких файлов журнала треков с использованием подстановочных знаков в имени ФАЙЛ_С_ТРЕКОМ, но обратите внимание, что в этом случае ФАЙЛ_С_ТРЕКОМ необходимо заключить в кавычки в большинстве систем (за заметным исключением Windows), чтобы предотвратить толкование специальных символов в имени файла. Например:

exiftool -geotag "ДИРЕКТОРИЯ_ТРЕКОВ/*.log" ДИРЕКТОРИЯ_ИЗОБРАЖЕНИЙ

В настоящее время поддерживаются следующие форматы файлов треков: GPX, NMEA RMC/GGA/GLL, KML, IGC, Garmin XML and TCX, Magellan PMGNTRK, Honeywell PTNTHPR, Bramor gEO, Winplus Beacon TXT и GPS/IMU CSV файлы. «ПРИМЕРЫ ГЕОТЕГИРОВАНИЯ» в разделе «Примеры запуска ExifTool». Также смотрите страницу «Geotag.html» в полном дистрибутиве ExifTool и опции Image::ExifTool — man Image::ExifTool для получения более подробной информации и информации о параметрах конфигурации геотегов.

-globalTimeShift SHIFT

При чтении сдвигает все форматированные значения даты/времени на указанную величину. Не применяется к неформатированному (-n) выводу. SHIFT принимает ту же форму, что и сдвиг даты/времени при записи (подробности смотрите в Image::ExifTool::Shift.pl — man Image::ExifTool::Shift.pl), при этом отрицательный сдвиг обозначается знаком минус («-») в начале строки SHIFT. Например:

                # вернуть все дату/время со сдвигом на 1 час назад
                exiftool -globalTimeShift -1 -time:all a.jpg

                # задаём имя файла из сдвинутой CreateDate (-1 день) для
                # всех изображений в каталоге
                exiftool "-filename<createdate" -globaltimeshift "-0:0:1 0:0:0" -d %Y%m%d-%H%M%S.%%e ДИРЕКТОРИЯ

-use МОДУЛЬ

Добавить функции из указанного модуля МОДУЛЬ. В настоящее время модуль MWG — единственный подключаемый модуль, распространяемый с exiftool. Этот модуль добавляет поддержку чтения/записи для тегов, как рекомендовано Рабочей группой по метаданным (Metadata Working Group).

Для удобства предполагается использование «-use MWG», если группа «MWG» указана для любого тега в командной строке. Дополнительную информацию смотрите в документации по тегам MWG. Обратите внимание, что этот параметр необратим и действует до завершения работы приложения, даже при использовании параметра «-execute».

Утилиты

-restore_original

-delete_original[!]

Эти опции служебных программ автоматизируют обслуживание файлов «_original», созданных exiftool. Они не имеют эффекта на файлы копий без «_original». Опция -restore_original восстанавливает указанные файлы из их исходных копий путём переименования файлов «_original» для замены отредактированных версий. Например, следующая команда восстанавливает оригиналы всех изображений JPG в каталоге «ДИРЕКТОРИЯ»:

exiftool -restore_original -ext jpg ДИРЕКТОРИЯ

Параметр -delete_original удаляет «_original» копии всех файлов, указанных в командной строке. Без завершающего «!» эта опция запрашивает подтверждение перед продолжением. Например, следующая команда удаляет «a.jpg_original», если он существует, после вопроса «Are you sure?»:

exiftool -delete_original a.jpg

Эти опции нельзя использовать с другими опция для чтения или записи значений тегов в той же команде, но их можно комбинировать с такими опции, как -ext, -if, -r, -q и -v.

Расширенные настройки

Помимо прочего, расширенные опции позволяют выполнять сложную обработку с помощью одной команды без необходимости в дополнительном скриптовании. Это может быть особенно полезно для таких реализаций, как приложения Windows с перетаскиванием. Эти параметры также могут использоваться для повышения производительности при многопроходной обработке за счёт уменьшения накладных расходов, необходимых для загрузки exiftool для каждого вызова.

-api ОПЦИЯ[[^]=[ЗНАЧЕНИЕ]]

Установит параметр ExifTool API. ОПЦИЯ — это имя опции API. Значение опции устанавливается на 1, если =ЗНАЧЕНИЕ опущено. Если ЗНАЧЕНИЕ опущено, значение опции устанавливается в undef, если используется «=»; или в пустую строку если используется «^=». Смотрите в разделе Параметры Image::ExifTool список доступных параметров API (man Image::ExifTool). Это отменяет параметры API, установленные в файле конфигурации.

-common_args

Указывает, что все аргументы, следующие за этой опцией, являются общими для всех выполняемых команд при использовании -execute. Этот параметр и параметр -config — единственные параметры, которые нельзя использовать внутри -@ ФАЙЛА_С_АРГУМЕНТАМИ. Обратите внимание, что по определению этот параметр и его аргументы ДОЛЖНЫ идти после всех других параметров в командной строке.

-config ФАЙЛ_КОНФИГУРАЦИИ

Загрузить указанный файл конфигурации вместо файла по умолчанию «.ExifTool_config». Если используется, этот параметр должен стоять перед всеми остальными аргументами командной строки и применяется ко всем командам, выполняемым с опцией -execute. ФАЙЛ_КОНФИГУРАЦИИ должен существовать относительно текущего рабочего каталога или каталога приложения exiftool, если не указан абсолютный путь. Загрузку файла конфигурации по умолчанию можно отключить, установив для ФАЙЛА_КОНФИГУРАЦИИ пустую строку (то есть, «»). Смотрите https://exiftool.org/config.html и config_files/example.config в полном дистрибутиве ExifTool для получения подробной информации о синтаксисе файла конфигурации.

-echo[ЧИСЛО] ТЕКСТ

Вывести ТЕКСТ на stdout (-echo или -echo1) или на stderr (-echo2). Текст выводится по мере анализа командной строки перед обработкой любых входных файлов. ЧИСЛО также может быть 3 или 4 для вывода текста (в stdout или stderr соответственно) после завершения обработки. Для -echo3 и -echo4, «${status}» может использоваться в строке ТЕКСТ для представления числового статуса выхода команды (см. «СТАТУС ВЫХОДА»).

-efile[ЧИСЛО][!] ФАЙЛ_ОШИБОК

Сохранит имена файлов с ошибками (если ЧИСЛО отсутствует или установлено на 1), файлов, которые не были изменены (ЧИСЛО равно 2), файлов, которые не соответствуют условию -if (ЧИСЛО равно 4), или любой их комбинации (суммируя ЧИСЛО, например -efile3 это то же самое, что и одновременное использование опций -efile и -efile2 с одинаковым ФАЙЛ_ОШИБОК). По умолчанию имена файлов добавляются к любому существующему ФАЙЛУ_ОШИБОК, но ФАЙЛ_ОШИБОК перезаписывается, если к параметру добавляется восклицательный знак (то есть -efile!).

Если возможно, сохраняет имя файла, указанное опцией -srcfile.

-execute[ЧИСЛО]

Выполнить команду для всех аргументов до этого момента в командной строке (плюс любые аргументы, указанные в -common_args). Результат такой же, как если бы команды выполнялись как отдельные строки команд (за исключением опций -config и -use, которые остаются в силе для последующих команд). Позволяет выполнять несколько команд из одной командной строки. ЧИСЛО — это необязательное число, которое отображается в сообщении «{ready}» при использовании функции -stay_open. Если указано ЧИСЛО, опция -q больше не подавляет вывод сообщения «{readyNUM}».

-srcfile ФОРМАТ

Указывает другой исходный файл для обработки на основе имени оригинального ФАЙЛА. Это может быть полезно в некоторых особых ситуациях для обработки связанных изображений предварительного просмотра или сопроводительных файлов. Описание синтаксиса ФОРМАТ смотрите в опции -w. Обратите внимание, что строки ФОРМАТ имени файла для всех параметров основаны на исходном ФАЙЛЕ, указанном в командной строке, а не на имени исходного файла, указанном параметром -srcfile.

Например, чтобы скопировать метаданные из файлов NEF в соответствующие превью JPG в каталоге, где могут существовать другие изображения JPG:

exiftool -ext nef -tagsfromfile @ -srcfile %d%f.jpg ДИРЕКТОРИЯ

Если указано более одного параметра -srcfile, файлы проверяются по порядку, и обрабатывается первый существующий исходный файл. Если ни один из исходных файлов ещё не существует, exiftool использует первый указанный -srcfile.

ФОРМАТ «@» может использоваться для представления исходного ФАЙЛА, что может быть полезно при указании нескольких параметров -srcfile (например, для возврата к обработке исходного ФАЙЛА, если не существует сопутствующего файла).

Когда используется этот параметр, создаются два специальных тега UserParam (OriginalFileName и OriginalDirectory), чтобы разрешить доступ к исходному имени ФАЙЛА и каталогу.

-stay_open ФЛАГ

Если ФЛАГ равен 1 или «True», exiftool продолжает чтение из -@ ФАЙЛ_С_АРГУМЕНТАМИ даже после достижения конца файла. Эта функция позволяет вызывать приложения для предварительной загрузки exiftool, тем самым избегая накладных расходов на загрузку exiftool для каждой команды. Порядок действий следующий:

1) Выполняется «exiftool -stay_open True -@ ARGFILE», где ФАЙЛ_С_АРГУМЕНТАМИ — это имя существующего (возможно, пустого) файла аргументов, или «-», чтобы передать аргументы из стандартного ввода.

2) Записываются аргументы командной строки exiftool в ФАЙЛ_С_АРГУМЕНТАМИ, по одному аргументу на строку (подробности смотрите в опции -@).

3) Записывается «-execute\n» в ФАЙЛ_С_АРГУМЕНТАМИ, где «\n» представляет собой обозначение новой строки. (Примечание: вам может потребоваться очистить буферы записи здесь, если вы используете буферизованный вывод.) ExifTool затем выполнит команду с аргументами, полученными до этого момента, отправит сообщение «{ready}» на stdout, когда это будет сделано (если не указано -q или -T) и продолжит попытки чтения аргументов для следующей команды из ФАЙЛА_С_АРГУМЕНТАМИ. Чтобы помочь в синхронизации команды/ответа, любое число, добавленное к опции «-execute», отражается в сообщении «{ready}». Например, «-execute613» даёт «{ready613}». При добавлении этого числа -q больше не подавляет сообщение «{ready}». (Также смотрите опции -echo3 и -echo4, чтобы узнать о дополнительных способах передачи сигналов обратно в ваше приложение.)

4) Повторяются шаги 2 и 3 для каждой команды.

5) По завершении записывается «-stay_open\nFalse\n» в ФАЙЛ_С_АРГУМЕНТАМИ. Это заставит exiftool обработать все оставшиеся аргументы командной строки, а затем завершить работу в обычном режиме.

Входной ФАЙЛ_С_АРГУМЕНТАМИ можно изменить в любое время до шага 5 выше, записав следующие строки в текущий открытый ФАЙЛ_С_АРГУМЕНТАМИ:

                -stay_open
                True
                -@
                НОВЫЙ_ФАЙЛ_С_АРГУМЕНТАМИ

Это приводит к тому, что ФАЙЛ_С_АРГУМЕНТАМИ закрывается, а НОВЫЙ_ФАЙЛ_С_АРГУМЕНТАМИ остаётся открытым. (Без -stay_open здесь exiftool вернулся бы к чтению аргументов из ФАЙЛА_С_АРГУМЕНТАМИ после достижения конца НОВОГО_ФАЙЛА_С_АРГУМЕНТАМИ.)

Примечание. При записи аргументов в файл на диске после записи «-execute\n» сделана задержка до 0,01 секунды, прежде чем exiftool начнёт обработку команды. Этой задержки можно избежать, отправив сигнал CONT процессу exiftool сразу после записи «-execute\n». (Соответствующая задержка отсутствует при записи аргументов через конвейер с «-@ -», поэтому сигнал не требуется при использовании этого метода.)

-userParam ПАРАМЕТР[[^]=[ЗНАЧЕНИЕ]]

Установит пользовательский параметр. ПАРАМЕТР — произвольное имя параметра пользователя. Это интерфейс для параметра API UserParam (смотрите документацию по опциям Image::ExifTool — man Image::ExifTool) и предоставляет метод доступа к параметрам, определяемым пользователем, в аргументах для опций -if и -p, как если бы они были любым другим тегом. Добавление хэш-тега («#») к ПАРАМЕТРУ также приводит к извлечению параметра как обычного тега (в группе UserParam). Подобно опции -api, значение параметра устанавливается в 1, если =ЗНАЧЕНИЕ опущено; undef, если ЗНАЧЕНИЕ опущено, но указан «=»; или пустая строка, если ЗНАЧЕНИЕ опущено, но указано «^=».

exiftool -p '$test from $filename' -userparam test=Hello ФАЙЛ

Расширенная функция форматирования

Расширенная функция форматирования позволяет изменять значение любого тега, интерполированного в аргументе параметра -if или -p, или в строке перенаправления -tagsFromFile. Имена тегов в этих строках имеют префикс — символ «$», и к значению тега можно применить произвольное выражение Perl, заключив имя тега в фигурные скобки и вставив выражение после имени, разделённое точкой с запятой (т. е. «${TAG;EXPR}»). Выражение воздействует на значение тега через входную переменную по умолчанию ($_) и имеет доступ к полному API ExifTool через текущий объект ExifTool ($self) и ключ тега ($$tag). Он может содержать любой допустимый код Perl, включая операции перевода («tr///») и подстановки («s///»), но учтите, что фигурные скобки внутри выражения должны быть сбалансированы. В приведённом ниже примере печатается Make Camera с пробелами, переведёнными в подчёркивания, и несколькими последовательными подчёркиваниями, заменёнными одним подчёркиванием:

exiftool -p '${make;tr/ /_/;s/__+/_/g}' image.jpg

«@» может быть добавлен после имени тега, чтобы выражение действовало на отдельные элементы списка для тегов типа списка, упрощая обработку списка. Установите $_ в undef, чтобы удалить элемент из списка. Например, следующая команда возвращает все объекты, не содержащие строку «xxx»:

exiftool -p '${subject@;$_=undef if /xxx/}' image.jpg

Выражение по умолчанию «tr(/\\?*:|"<>\0)()d» предполагается, если выражение пустое (то есть ${ТЕГ;}). Это удаляет символы / \ ? * : | < > и null из напечатанного значения (эти символы недопустимы в именах файлов Windows, поэтому эта функция полезна, если значения тегов используются в именах файлов).

Вспомогательные функции

«DateFmt»

Упрощает переформатирование отдельных значений даты и времени. Эта функция работает со стандартным значением даты/времени в формате EXIF в $_ и форматирует его в соответствии с указанной строкой формата (смотрите опцию -d). Чтобы не пытаться переформатировать уже отформатированное значение даты/времени, необходимо добавить «#» к имени тега (как в примере ниже), если также используется опция -d. Например:

exiftool -p '${createdate#;DateFmt("%Y-%m-%d_%H%M%S")}' a.jpg

«ShiftTime»

Сдвигает строку даты/времени в формате EXIF на указанную величину. Начните со знака минус, чтобы перейти назад во времени. Смотрите Image::ExifTool::Shift.pl (man Image::ExifTool::Shift.pl) для получения подробной информации о синтаксисе сдвига. Например, чтобы сдвинуть значение даты/времени назад на один год:

exiftool -p '${createdate;ShiftTime("-1:0:0 0")}' a.jpg

«NoDups»

Удаляет повторяющиеся элементы из списка с разделителем, указанным параметром -sep. Эта функция наиболее полезна при копировании тегов типа списка. Например, для удаления повторяющихся ключевых слов можно использовать следующую команду:

exiftool -sep '##' '-keywords<${keywords;NoDups}' a.jpg

Опция -sep необходима для разделения строки на отдельные элементы списка при записи в тег типа списка.

Необязательный аргумент флага может быть установлен в 1, чтобы «NoDups» возвращал undef, если дубликаты не существовали, что предотвращает ненужную перезапись файла:

exiftool -sep '##' '-keywords<${keywords;NoDups(1)}' a.jpg

Обратите внимание, что имена функций чувствительны к регистру.

ИМЕНА ФАЙЛОВ WINDOWS UNICODE

В Windows аргументы командной строки указываются с использованием текущей кодовой страницы и автоматически перекодируются на системную кодовую страницу. Это перекодирование не выполняется для аргументов ExifTool в ФАЙЛАХ_С_АРГУМЕНТАМИ, поэтому по умолчанию имена файлов в ФАЙЛАХ_С_АРГУМЕНТАМИ используют системную кодовую страницу. К сожалению, эти кодовые страницы не являются полными наборами символов, поэтому могут быть представлены не все имена файлов.

ExifTool 9.79 и более поздние версии позволяют указывать кодировку имени файла с помощью «-charset filename=CHARSET», где «CHARSET» — это имя допустимого набора символов ExifTool, предпочтительно «UTF8» (полный список смотрите в описании опции -charset). Установка этого параметра запускает использование подпрограмм ввода-вывода Windows для широких символов, что обеспечивает поддержку большинства имён файлов Unicode (смотрите примечание 4). Но обратите внимание, что передать правильно закодированные имена файлов в командной строке Windows нетривиально (подробнее смотрите по ссылке https://exiftool.org/faq.html#Q18), поэтому поместите их в кодировке UTF-8 в -@ ФАЙЛЕ_С_АРГУМЕНТАМИ и по возможности рекомендуется использовать «-charset filename=utf8».

Выдаётся предупреждение, если указанное имя файла содержит специальные символы, а набор символов имени файла не указан. Однако предупреждение можно отключить, установив «-charset filename=""», и ExifTool может по-прежнему работать правильно, если системная кодовая страница соответствует набору символов, используемому для имён файлов.

Если указано имя каталога, кодировку имени файла указывать не нужно (если имя каталога не содержит специальных символов), и ExifTool автоматически будет использовать подпрограммы расширенных символов для сканирования каталога.

Набор символов имени файла применяется к аргументам ФАЙЛА, а также к аргументам имени файла -@, -geotag, -o, -p, -srcfile, -tagsFromFile, -csv=, -j= и -ТЕГ<=. Однако это не относится к имени файла -config, которое всегда использует системный набор символов. Опция «-charset filename=» должна стоять перед опцией -@, чтобы действовать, но порядок не имеет значения по отношению к другим опциям.

Примечания:

1) Значения тегов FileName и Directory по-прежнему используют ту же кодировку, что и другие значения тегов, и преобразуются в/из набора символов имени файла при записи/чтении, если указано.

2) Поддержка Unicode ещё не реализована для других систем в Windows, таких как Cygwin.

3) Смотрите раздел «ЗАПИСЬ ФАЙЛОВ ТОЛЬКО ДЛЯ ЧТЕНИЯ» ниже, чтобы узнать о редактировании файлов только для чтения с именами Unicode.

4) Имена файлов Unicode с суррогатными парами (кодовые точки над U+FFFF) по-прежнему вызывают проблемы.

ЗАПИСЬ ФАЙЛОВ ТОЛЬКО ДЛЯ ЧТЕНИЯ

Как правило, ExifTool может использоваться для записи метаданных в файлы, доступные только для чтения, при условии, что у пользователя есть разрешение на запись в каталог. Однако есть три случая, когда также требуется разрешение на запись в файл:

1) При использовании опции -overwrite_original_in_place.

2) При записи только псевдосистемных тегов (например, FileModifyDate).

3) В Windows, если в имени файла есть символы Юникода и а) используется опция -overwrite_original, или б) резервная копия «_original» уже существует.

Скрытые файлы в Windows ведут себя как файлы только для чтения при попытке записать в файл какие-либо реальные теги возникает ошибка при использовании -overwrite_original_in_place, в противном случае запись должна быть успешной и атрибут скрытности будет удалён. Но параметр -if может использоваться, чтобы избежать обработки скрытых файлов (при условии, что Win32API::File доступен):

exiftool -if "$fileattributes !~ /Hidden/" ...

СТАТУС ВЫХОДА

Приложение exiftool завершает работу со статусом 0 в случае успеха, или 1, если произошла ошибка, или 2, если все файлы не прошли условие -if (для любой из команд, если была использована -execute).

Составные теги (Composite)

Значения составных тегов производятся из значений других тегов. Это вспомогательные теги, которые вычисляются после извлечения всей остальной информации. Только некоторые из этих тегов доступны для записи напрямую, остальные можно изменить, записав соответствующие теги Derived From (теги, которые являются источником для составных). Пользовательские составные теги, также полезные для настраиваемого форматирования значений тегов, могут быть созданы с помощью файла конфигурации ExifTool.

Примеры запуска ExifTool

ПРИМЕРЫ ЧТЕНИЯ МЕТАДАННЫХ

Примечание: Пользователи Windows должны использовать двойные кавычки вместо одинарных кавычек, как показано ниже, вокруг аргументов, содержащих специальные символы.

Распечатать всю метаинформацию изображения, включая повторяющиеся и неизвестные теги, с сортировкой по группам (для семейства 1). По соображениям производительности эта команда может не извлекать все доступные метаданные. (Метаданные во встроенных документах, метаданные, извлечённые внешними утилитами, и метаданные, требующие чрезмерного времени обработки, не могут быть извлечены). Добавьте в команду «-ee» и «-api RequestAll=3», чтобы извлечь абсолютно всё, что доступно.

exiftool -a -u -g1 a.jpg

Вывести обычную метаинформацию для всех изображений в «ДИРЕКТОРИИ». «-common» — сокращение, представляющее обычную метаинформацию EXIF.

exiftool -common ДИРЕКТОРИЯ

Перечислить указанную метаинформацию в виде столбца с разделителями табуляцией для всех изображений в «ДИРЕКТОРИИ» в выходной текстовый файл с именем «out.txt».

exiftool -T -createdate -aperture -shutterspeed -iso ДИРЕКТОРИЯ > out.txt

Вывести имена и значения тегов ImageSize и ExposureTime.

exiftool -s -ImageSize -ExposureTime b.jpg

Вывести стандартную информацию Canon из двух файлов изображений.

exiftool -l -canon c.jpg d.jpg

Рекурсивно извлекать обычную метаинформацию из файлов в каталоге «pictures», записывая текстовый вывод в файлы «.txt» с такими же именами.

exiftool -r -w .txt -common pictures

Сохраните миниатюрное изображение из «image.jpg» в файл с именем «thumbnail.jpg».

exiftool -b -ThumbnailImage image.jpg > thumbnail.jpg

Рекурсивно извлечь изображение JPG из всех файлов Nikon NEF в текущем каталоге, добавив «_JFR.JPG» в качестве имени выходных файлов JPG.

exiftool -b -JpgFromRaw -w _JFR.JPG -ext NEF -r .

Извлечь все типы изображений предварительного просмотра (ThumbnailImage, PreviewImage, JpgFromRaw и т. д.) из файлов в каталоге «ДИРЕКТОРИЯ», добавив имя тега к именам выходных файлов изображений предварительного просмотра.

exiftool -a -b -W %d%f_%t%-c.%s -preview:all ДИРЕКТОРИЯ

Печать форматированный даты и времени для всех файлов JPG в текущем каталоге.

exiftool -d '%r %a, %B %e, %Y' -DateTimeOriginal -S -s -ext jpg .

Извлечь разрешение изображения из информации EXIF IFD1 (изображение предварительного просмотра IFD).

exiftool -IFD1:XResolution -IFD1:YResolution image.jpg

Извлечь из изображения все теги с именами, содержащими слово «resolution».

exiftool '-*resolution*' image.jpg

Извлечь из изображения всю информацию XMP об авторе.

exiftool -xmp:author:all -a image.jpg

Извлечь полную запись данных XMP из «a.jpg» и записать её в «out.xmp» с помощью специального тега «XMP» (отрите дополнительные теги в Image::ExifTool::TagNames — man Image::ExifTool::TagNames).

exiftool -xmp -b a.jpg > out.xmp

Вывести одну строку вывода, содержащую имя файла и DateTimeOriginal для каждого изображения в каталоге «ДИРЕКТОРИЯ».

exiftool -p '$filename has date $dateTimeOriginal' -q -f ДИРЕКТОРИЯ

Извлечь все позиции GPS из видео AVCHD.

exiftool -ee -p '$gpslatitude, $gpslongitude, $gpstimestamp' a.m2ts

Сохранить полный ICC_Profile из изображения в выходной файл с тем же именем и расширением «.icc».

exiftool -icc_profile -b -w icc image.jpg

Сгенерировать HTML-страницы из шестнадцатеричного дампа информации EXIF во всех изображениях из каталога «t/images». Выходные файлы HTML записываются в каталог «tmp» (который создаётся, если он не существует) с именами в форме «ИМЯФАЙЛА_РАСШИРЕНИЕ.html».

exiftool -htmldump -w tmp/%f_%e.html t/images

Извлечь встроенные изображения JPG и JP2 из файла PDF. Выходные изображения будут иметь такие имена, как «Image_#.jpg» или «Image_#.jp2», где «#» - это номер встроенного документа ExifTool семейства 3 для изображения.

exiftool -a -b -ee -embeddedimage -W Image_%.3g3.%s file.pdf

ПРИМЕРЫ ЗАПИСИ МЕТАДАННЫХ В ФАЙЛ

Обратите внимание, что необходимо заключать в кавычки аргументы, содержащие определённые специальные символы, такие как «>», «<» или любые пробелы. Эти методы заключения в кавычки зависят от оболочки, но приведённые ниже примеры работают для большинства оболочек Unix (Linux). Однако в оболочке Windows cmd следует использовать двойные кавычки (например, -Comment="This is a new comment").

Написать новый комментарий к изображению JPG (заменяет любой существующий комментарий).

exiftool -Comment='This is a new comment' dst.jpg

Удаляет комментарии ко всем изображениям JPG в текущем каталоге, записав изменённые изображения в новый каталог.

exiftool -comment= -o НОВАЯ_ДИРЕКТОРИЯ -ext jpg .

Заменить существующий список ключевых слов двумя новыми ключевыми словами («EXIF» и «editor»).

exiftool -keywords=EXIF -keywords=editor dst.jpg

Скопировать исходное изображение в новый файл и добавить ключевое слово («word») в текущий список ключевых слов.

exiftool -Keywords+=word -o НОВЫЙ_ФАЙЛ.jpg ИСХОДНЫЙ_ФАЙЛ.jpg

Уменьшить значение ExposureCompensation на 0,5 EV. Обратите внимание, что += с отрицательным значением используется для уменьшения, потому что оператор -= используется для условного удаления (смотрите следующий пример).

exiftool -exposurecompensation+=-0.5 a.jpg

Удалить информацию о Credit (похвала) из всех файлов в каталоге, где значение Credit было «xxx».

exiftool -credit-=xxx dir

Записать альтернативный язык для XMP:Description, используя экранирование символов HTML для ввода специальных символов.

exiftool -xmp:description-de='k&uuml;hl' -E dst.jpg

Удалить всю метаинформацию с изображения. Примечание: Вы НЕ должны делать это с изображениями RAW (кроме DNG), поскольку проприетарные форматы изображений RAW часто содержат информацию в примечаниях производителя, которая необходима для преобразования изображения.

exiftool -all= dst.jpg

Удалить всю метаинформацию с изображения и снова добавьте комментарий. (Обратите внимание, что порядок важен: «-comment='lonely' -all=» также удалит новый комментарий.)

exiftool -all= -comment='lonely' dst.jpg

Удалить из изображения всю метаинформацию, кроме группы JFIF.

exiftool -all= --jfif:all dst.jpg

Удалить метаинформацию Photoshop из изображения (обратите внимание, что информация Photoshop также включает IPTC).

exiftool -Photoshop:All= dst.jpg

Рекурсивно удалить всю информацию XMP-crss из изображений в ДИРЕКТОРИИ.

exiftool -r -XMP-crss:all= ДИРЕКТОРИЯ

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

exiftool '-ThumbnailImage<=thumb.jpg' dst.jpg

Рекурсивно записывать изображения JPEG с именами файлов, заканчивающимися на «_JFR.JPG», в тег JpgFromRaw файлов с одинаковыми именами с расширением «.NEF» в текущем каталоге. (Это обратная для «-JpgFromRaw» команде которая приведена выше в разделе «ПРИМЕРЫ ЧТЕНИЯ МЕТАДАННЫХ».)

exiftool '-JpgFromRaw<=%d%f_JFR.JPG' -ext NEF -r .

Уточнить исходную дату/время для всех изображений в каталоге «ДИРЕКТОРИЯ», вычтя один час 30 минут. (Это эквивалентно «-DateTimeOriginal-=1.5». Подробности смотрите Image::ExifTool::Shift.pl — man Image::ExifTool::Shift.pl)

exiftool -DateTimeOriginal-='0:0:0 1:30:0' ДИРЕКТОРИЯ

Добавить 3 часа к отметкам времени CreateDate и ModifyDate двух изображений.

exiftool -createdate+=3 -modifydate+=3 a.jpg b.jpg

Сдвинуть значения DateTimeOriginal, CreateDate и ModifyDate вперёд на 1 час 30 минут для всех изображений Canon в ДИРЕКТОРИИ. (Тег AllDates предоставляется как ярлык для этих трёх тегов, что позволяет получить к ним доступ через один тег.)

exiftool -AllDates+=1:30 -if '$make eq "Canon"' ДИРЕКТОРИЯ

Написать тег для группы XMP из двух изображений. (Без «xmp:» этот тег будет записан в группу IPTC, поскольку «City» существует в обеих группах, а IPTC предпочтительнее по умолчанию.)

exiftool -xmp:city=Kingston image1.jpg image2.nef

Удалить тег «LightSource», только если он unknown со значением 0.

exiftool -LightSource-='Unknown (0)' dst.tiff

Установить «WhiteBalance» на «Tungsten», только если ранее он был «Auto».

exiftool -whitebalance-=auto -WhiteBalance=tung dst.jpg

Написать новый комментарий, только если у изображения его ещё нет.

exiftool -comment-= -comment='new comment' a.jpg

Создать файлы данных метаинформации XMP для всех изображений в «ДИРЕКТОРИИ».

exiftool -o %d%f.xmp ДИРЕКТОРИЯ

Создать файл данных XMP только из тегов, определённых в командной строке.

exiftool -o test.xmp -owner=Phil -title='XMP File'

Записать ICC_Profile в изображение из одноимённого файла «.icc».

exiftool '-ICC_Profile<=%d%f.icc' image.jpg

Написать структурированную информацию XMP. Смотрите https://exiftool.org/struct.html для получения более подробной информации.

exiftool -hierarchicalkeywords='{keyword=one,children={keyword=B}}'

Удалить любой трейлер, найденный после конца изображения (EOI) в файле JPEG. Некоторые цифровые камеры сохраняют большое изображение предварительного просмотра после JPEG EOI, и размер файла можно значительно уменьшить, удалив этот трейлер. Список распознаваемых трейлеров JPEG смотрите в документации по тегам JPEG.

exiftool -trailer:all= image.jpg

ПРИМЕРЫ КОПИРОВАНИЯ МЕТАДАННЫХ МЕЖДУ ФАЙЛАМИ

Эти примеры демонстрируют возможность копировать значения тегов между файлами.

Скопировать значения всех доступных для записи тегов из «src.cr2» в «dst.jpg», записав информацию в одноимённые теги в предпочтительных группах.

exiftool -tagsFromFile src.cr2 dst.jpg

Скопировать значения всех доступных для записи тегов из «src.jpg» в «dst.jpg», сохранив исходные группы тегов.

exiftool -TagsFromFile src.jpg -all:all dst.jpg

Удалить всю метаинформацию из изображения «dst.jpg», затем скопировать теги EXIF из «src.jpg».

exiftool -all= -tagsfromfile src.jpg -exif:all dst.jpg

Восстановить всю метаинформацию EXIF с нуля в изображении. Этот метод можно использовать в изображениях JPEG для восстановления повреждённой информации EXIF, которая в противном случае не могла бы быть записана из-за ошибок. Тег «Unsafe» — это сокращение для небезопасных тегов EXIF в изображениях JPEG, которые обычно не копируются. Дополнительную информацию о небезопасных тегах смотрите в документации по именам тегов.

exiftool -exif:all= -tagsfromfile @ -all:all -unsafe bad.jpg

Скопировать метаинформацию из «a.jpg» в файл данных XMP. Если файл данных XMP «out.xmp» уже существует, он будет обновлён с новой информацией. В противном случае будет создан файл данных XMP. Таким образом можно создавать файлы, содержащие только метаданные (файлы, содержащие изображения, можно редактировать, но нельзя создавать). Смотрите «ПРИМЕРЫ ЗАПИСИ МЕТАИНФОРМАЦИИ В ФАЙЛ» выше, чтобы узнать о другом способе создания файлов XMP.

exiftool -Tagsfromfile a.jpg out.xmp

Скопировать всю метаинформацию из «a.jpg» в «b.jpg», удалив всю информацию XMP и эскиз изображения из места назначения.

exiftool -tagsFromFile a.jpg -XMP:All= -ThumbnailImage= -m b.jpg

Скопировать заголовок с одного изображения на другое и установить новое имя автора.

exiftool -TagsFromFile src.jpg -title -author=Phil dst.jpg

Скопировать ISO из одного изображения и комментарий из другого изображения в целевое изображение.

exiftool -TagsFromFile a.jpg -ISO -TagsFromFile b.jpg -comment dst.jpg

Скопировать только информацию EXIF из одного изображения в другое, за исключением тегов SubIFD.

exiftool -tagsfromfile src.jpg -exif:all --subifd:all dst.jpg

Использовать исходную дату из метаинформации, чтобы установить дату изменения файла в файловой системе на одинаковую для всех изображений в ДИРЕКТОРИИ. (Обратите внимание, что «-TagsFromFile @» предполагается, если не указан другой -TagsFromFile при перенаправлении информации, как в этом примере.)

exiftool '-FileModifyDate<DateTimeOriginal' ДИРЕКТОРИЯ

Скопировать всю возможную информацию из «src.jpg» и записать в формате XMP в «dst.jpg».

exiftool -TagsFromFile src.jpg '-xmp:all<all' dst.jpg

Установить Description изображения из имени файла после удаления расширения. В этом примере используется «Расширенная функция форматирования» для выполнения операции подстановки, чтобы удалить последнюю точку и последующие символы из имени файла.

exiftool '-Description<${FileName;s/\.[^.]*$//}' ДИРЕКТОРИЯ

Преобразовать информацию IPTC в XMP с соответствующими преобразованиями имён тегов и удалить исходную информацию IPTC из изображения. В этом примере используется файл iptc2xmp.args, включенный в дистрибутив ExifTool и содержащий необходимые аргументы для преобразования информации IPTC в формат XMP. Также в дистрибутив включены xmp2iptc.args (который выполняет обратное преобразование) и ещё несколько файлов .args для других преобразований между EXIF, IPTC и XMP.

exiftool -@ iptc2xmp.args -iptc:all= a.jpg

Рекурсивно перезаписать все изображения JPG в ДИРЕКТОРИИ на информацию, скопированную из соответствующих изображений «CR2» в тех же каталогах.

exiftool -tagsfromfile %d%f.CR2 -r -ext JPG ДИРЕКТОРИЯ

Добавить марку камеры в список ключевых слов.

exiftool '-keywords+<make' image.jpg

Установить тег комментария для всех изображений в «ДИРЕКТОРИИ» из значений тегов EXIF:ISO и ShutterSpeed. Результирующий комментарий будет в форме «ISO=100 Exposure=1/60».

exiftool '-comment<ISO=$exif:iso Exposure=${shutterspeed}' ДИРЕКТОРИЯ

Скопировать ICC_Profile из одного изображения в другое.

exiftool -TagsFromFile src.jpg -icc_profile dst.jpg

Скопировать всю метаинформацию в исходной форме из изображения JPEG в файл MIE. Если файл MIE не существует, он будет создан. Этот метод можно использовать для хранения метаданных изображения, чтобы их можно было вставить обратно в изображение (с помощью обратной команды) позже в рабочем процессе.

exiftool -TagsFromFile src.jpg -all:all dst.mie

Эта команда выполняет в точности ту же задачу, что и команда выше, за исключением того, что параметр -o не будет записывать в выходной файл, который уже существует.

exiftool -o dst.mie -all:all src.jpg

[Продвинутое использование] Извлечь JpgFromRaw или PreviewImage из всех файлов, кроме JPG, в ДИРЕКТОРИИ, сохранив их с именами файлов, например «image_РАСШИРЕНИЕ.jpg», затем добавить всю метаинформацию из исходных файлов в извлечённые изображения. Здесь строка команды разбита на три раздела (разделённых параметрами -execute), и каждый выполняется, как если бы это была отдельная команда. Параметр -common_args приводит к применению аргументов «--ext jpg ДИРЕКТОРИЯ» ко всем трём командам, а параметр -srcfile позволяет извлечённому изображению JPG быть исходным файлом для третьей команды (тогда как файлы RAW являются исходными файлами для двух других команд).

exiftool -b -jpgfromraw -w %d%f_%ue.jpg -execute -b -previewimage -w %d%f_%ue.jpg -execute -tagsfromfile @ -srcfile %d%f_%ue.jpg -overwrite_original -common_args --ext jpg ДИРЕКТОРИЯ

ПРИМЕРЫ ПЕРЕИМЕНОВАНИЯ

Путём написания тегов «FileName» и «Directory» файлы переименовываются и/или перемещаются в новые каталоги. Это может быть особенно полезно и мощно для организации файлов по дате в сочетании с параметром -d. Новые каталоги создаются по мере необходимости, но существующие файлы не будут перезаписаны. Коды формата %d, %f и %e могут использоваться в новом имени файла для представления каталога, имени и расширения исходного файла, а %c может использоваться для добавления номера копии, если файл уже существует (смотрите опцию -w для подробностей). Обратите внимание, что при использовании в строке формата даты необходимо добавить дополнительный «%» для передачи этих кодов через синтаксический анализатор даты/времени.

(И далее обратите внимание, что в командном файле Windows все символы «%» также должны быть экранированы, поэтому в этом крайнем случае необходимо «%%%%f» передать простой «%f» через два уровня парсинга) Смотрите https://exiftool.org/filename.html для дополнительной документации и примеров.

Переименовать «old.jpg» в «new.jpg» в каталоге «ДИРЕКТОРИЯ».

exiftool -filename=new.jpg ДИРЕКТОРИЯ/old.jpg

Переместить все файлы из каталога «ДИРЕКТОРИЯ» в каталоги, названные исходными расширениями файлов.

exiftool -directory=%e ДИРЕКТОРИЯ

Переместить все файлы в «ДИРЕКТОРИИ» в иерархию каталогов на основе года, месяца и дня «DateTimeOriginal». То есть эта команда переместит файл «ДИРЕКТОРИЯ/image.jpg» с «DateTimeOriginal» равным «2005:10:12 16:05:56» в «2005/10/12/image.jpg».

exiftool '-Directory<DateTimeOriginal' -d %Y/%m/%d ДИРЕКТОРИЯ

Тот же эффект, что и выше, за исключением того, что файлы копируются, а не перемещаются.

exiftool -o . '-Directory<DateTimeOriginal' -d %Y/%m/%d ДИРЕКТОРИЯ

Переименовать все файлы в «ДИРЕКТОРИИ», добавив название модели камеры к имени файла. Точка с запятой после имени тега внутри фигурных скобок приводит к тому, что символы, недопустимые в именах файлов Windows, удаляются из значения тега (смотрите «Расширенное форматирование» для объяснения).

exiftool '-filename<%f_${model;}.%e' ДИРЕКТОРИЯ

Переименовать все изображения в «ДИРЕКТОРИИ» в соответствии с датой и временем «CreateDate», добавив номер копии с начальным знаком «-», если файл уже существует («%-c»), и сохранив исходное расширение файла (%e). Обратите внимание на дополнительный символ «%», необходимый для экранирования кодов файлов (%c и %e) в строке формата даты.

exiftool '-FileName<CreateDate' -d %Y%m%d_%H%M%S%%-c.%%e ДИРЕКТОРИЯ

И каталог, и имя файла могут быть изменены вместе с помощью тега «FileName», если новое «FileName» содержит «/». Приведённый ниже пример рекурсивно переименовывает все изображения в каталоге, добавляя временную метку CreateDate в начало имени файла, а затем перемещает их в новые каталоги, названные по дате.

exiftool -r '-FileName<CreateDate' -d %Y-%m-%d/%H%M_%%f.%%e ДИРЕКТОРИЯ

Задать имена файлов всех изображений JPG в текущем каталоге с помощью тегов CreateDate и FileNumber в форме «20060507_118-1861.jpg».

exiftool '-FileName<${CreateDate}_$filenumber.jpg' -d %Y%m%d -ext jpg .

ПРИМЕРЫ ГЕОТЕГИРОВАНИЯ

ExifTool реализует геотегирование с помощью трёх специальных тегов: Geotag (который для удобства также реализован как опция exiftool), Geosync и Geotime. В приведённых ниже примерах показаны некоторые функции геотегов. Дополнительную документацию смотрите на https://exiftool.org/geotag.html.

Геотегирование изображения ("a.jpg") из информации о местоположении в журнале GPS-треков ("track.log"). Поскольку тег «Geotime» не указан, значение DateTimeOriginal используется для геотегирования. Предполагается местное системное время, если DateTimeOriginal не содержит часовой пояс.

exiftool -geotag track.log a.jpg

Геотегирование изображения к GPS-положению на определённое время.

exiftool -geotag t.log -geotime='2009:04:02 13:41:12-05:00' a.jpg

Геотегирование всех изображений в каталоге ДИРЕКТОРИЯ тегами XMP вместо тегов EXIF на основе CreateDate из изображения.

exiftool -geotag log.gpx '-xmp:geotime<createdate' ДИРЕКТОРИЯ

Геотегирование изображений в каталоге ДИРЕКТОРИЯ, учитывая временные метки изображений, которые на 20 секунд опережают GPS.

exiftool -geotag a.log -geosync=-20 dir

Геотегирование изображений, используя синхронизацию времени из двух ранее отмеченных геотегами изображений (1.jpg и 2.jpg), синхронизацию изображения и времени GPS с использованием линейной коррекции дрейфа времени.

exiftool -geotag a.log -geosync=1.jpg -geosync=2.jpg ДИРЕКТОРИЯ

Геотегирование изображений в ДИРЕКТОРИИ с помощью CreateDate с указанным часовым поясом. Если CreateDate уже содержит часовой пояс, то часовой пояс, указанный в командной строке, игнорируется.

exiftool -geotag a.log '-geotime<${createdate}+01:00' ДИРЕКТОРИЯ

Удалить теги GPS, которые могли быть добавлены функцией геотегов. Обратите внимание, что это не удаляет все теги GPS — вместо этого используйте «-gps:all=».

exiftool -geotag= a.jpg

Удалить теги XMP GPS, которые были добавлены функцией геотегов.

exiftool -xmp:geotag= a.jpg

Геотегирование изображения с помощью тегов XMP, используя время из DateTimeOriginal.

exiftool -xmp:geotag=track.log a.jpg

Объединить несколько журналов треков и добавить геотеги для всего дерева каталогов изображений.

exiftool -geotag a.log -geotag b.log -r ДИРЕКТОРИЯ

Прочитать все журналы треков из каталога «tracks».

exiftool -geotag 'tracks/*.log' -r ДИРЕКТОРИЯ

Создать журнал треков GPX из всех изображений в каталоге «ДИРЕКТОРИЯ». В этом примере используется файл «gpx.fmt», включенный в полный дистрибутив ExifTool, и предполагается, что все изображения в «ДИРЕКТОРИИ» были ранее помечены геотегами.

exiftool -p gpx.fmt -d %Y-%m-%dT%H:%M:%SZ ДИРЕКТОРИЯ > out.gpx

ПРИМЕРЫ КОНВЕЙЕРНОЙ ОБРАБОТКИ

Извлечь информацию, переданную по stdin.

cat a.jpg | exiftool -

Извлечь информацию из встроенного эскиза изображения.

exiftool image.jpg -thumbnailimage -b | exiftool -

Добавить ключевое слово IPTC в конвейер, сохраняя вывод в новый файл.

cat a.jpg | exiftool -iptc:keywords+=fantastic - > b.jpg

Извлечь информацию из изображения, полученного через Интернет с помощью утилиты cURL. Параметр -fast запрещает exiftool сканировать информацию о трейлере, поэтому передаётся только заголовок метаинформации.

curl -s http://a.domain.com/bigfile.jpg | exiftool -fast -

Добавить комментарий к встроенному эскизу изображения. (Неизвестно, кому это может понадобиться, но автор включил это в качестве примера, чтобы проиллюстрировать гибкость ExifTool.)

exiftool a.jpg -thumbnailimage -b | exiftool -comment=wow - | exiftool a.jpg -thumbnailimage'<=-'

Установка ExifTool

Установка в Kali Linux

sudo apt install libimage-exiftool-perl libarchive-zip-perl libunicode-linebreak-perl

Установка в BlackArch

Программа предустановлена в BlackArch.

sudo pacman -S perl-image-exiftool perl-archive-zip

После этого исполнимый файл программы находится по пути /usr/bin/vendor_perl/exiftool. Поскольку файл не находится в переменной окружения $PATH, то для его запуска нужно указывать полный путь до файла:

/usr/bin/vendor_perl/exiftool

Это можно исправить сделав ссылку на файл из каталога, входящего в $PATH, например, из /usr/bin/:

sudo ln -s /usr/bin/vendor_perl/exiftool /usr/bin/

После этого программу можно запускать так:

exiftool

Установка в Debian, Linux Mint, Ubuntu и их производные

Для установки достаточно выполнить команды:

sudo apt update
sudo apt install libimage-exiftool-perl

Установка в Windows

Перейдите на официальный сайт программы: https://exiftool.org/ и скачайте архив «Windows Executable».

Распакуйте скаченный файл exiftool(-k).exe.

Если запустить этот файл двойным кликом, то будет показана документация по ExifTool (на английском языке).

Название файла exiftool(-k).exe показывает, что программа запускается с опцией -k. Из-за использования скобок в имени файла, при запуске программы в командной строке его придётся каждый раз помещать в кавычки. Чтобы этого не делать, переименуйте файл в exiftool.exe.

Для полноценной работы с программой, её нужно запускать в командной строке. Если вы не знаете, что это такое, то прочитайте статью «Настройка рабочего окружения PowerShell в Windows и Linux».

Пример извлечения метаданных в Windows:

1. Откроем PowerShell — для этого нажмите Win+x и выберите «Windows PowerShell».

2. Допустим, файл exiftool.exe расположен в папке C:\Users\MiAl\Downloads\, перейдём в неё с помощью команды cd:

cd C:\Users\MiAl\Downloads\

3. Для извлечения метаданных из изображения, запустите команду вида:

.\exiftool.exe 'C:\ПУТЬ\ДО\КАРТИНКИ.jpg'

К примеру, файл изображения с метаданными расположен по пути C:\Users\MiAl\Documents\testing\foto\20191106_181909.jpg, тогда команда для извлечения из него метаданных следующая:

.\exiftool.exe 'C:\Users\MiAl\Documents\testing\foto\20191106_181909.jpg'

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты ExifTool

Инструкции по ExifTool


Близкие программы:

  • Geotag (100%)
  • Exiv2 (92.8%)
  • mat2 (69.4%)
  • Metadata Cleaner (69.4%)
  • mat (62.1%)
  • chntpw (RANDOM - 13.5%)
  • Рекомендуется Вам:

    Comments are Closed