Exiv2
Описание Exiv2
Exiv2 — это кроссплатформенная библиотека C++ и утилита командной строки для управления метаданными изображений. Она обеспечивает быстрый и лёгкий доступ для чтения и записи к метаданным Exif, IPTC и XMP и профилю ICC, встроенному в цифровые изображения в различных форматах. Exiv2 доступен как бесплатное программное обеспечение и используется во многих проектах, включая KDE и Gnome Desktops, а также во многих приложениях, включая GIMP, darktable, shotwell, GwenView и Luminance HDR.
Возможности утилиты командной строки:
- Печать метаданных изображений Exif, IPTC и XMP в разных форматах: сводная информация Exif, интерпретированные значения или простые данные для каждого тега
- Печать структуры изображений. Это полезно для анализа файлов изображений.
- Установка, добавление и удаление метаданных Exif, IPTC, XMP и профиля ICC в командной строке командой modify скриптов с командами
- Подстройка отметок времени Exif
- Переименование файлов изображений Exif в соответствии с меткой времени Exif
- Извлечение, вставка и удаление метаданных Exif, IPTC и XMP и комментариев JPEG.
- Конвертация из Exif и IPTC в свойства XMP и наоборот
- Извлечение превью из изображений RAW и миниатюр из метаданных Exif
- Вставка и удаление миниатюрного изображения, встроенного в метаданные Exif
- Печать, установка и удаление комментария JPEG к изображениям JPEG
- Исправление настройки Exif ISO для снимков, сделанных с помощью камер Canon и Nikon
- Метаданные и профили ICC можно очень удобно передавать в командной строке от одного изображения к другому.
Домашняя страница: https://exiv2.org/
Автор: Andreas Huggel
Лицензия: GPLv2
Справка по Exiv2
Использование:
exiv2 [ ОПЦИИ ] [ ДЕЙСТВИЕ ] ФАЙЛ ...
Опции:
Действия: ad | adjust Заменить отметки времени Exif на заданное время. Этому действию нужен ключ -a time. pr | print Вывести на экран метаданные изображения. rm | delete Удалить метаданные изображений из их файлов. in | insert Вставить метаданные из соответствующих файлов *.exv. Используйте ключ -S для смены суффикса входящих файлов. ex | extract Извлечь метаданные в файлы *.exv, *.xmp и файлы эскизов. mv | rename переименовать файлы и/или установить отметки времени в соответствии с отметкой времени создания из данных Exif. Формат файла можно установить ключом -r, параметры отметки времени контролируются ключами -t и -T. mo | modify Применить команды изменения (добавить, установить, удалить) метаданных Exif и IPTC изображений или установить комментарий JPEG. Необходимо использовать в паре с ключом -c, -m или -M. fi | fixiso Скопировать значение ISO из Nikon Makernote в обычное поле Exif. fc | fixcom Конвертация пользовательского комментария UNICODE Exif в UCS-2. Текущая кодировка символов может быть указана с помощью опции -n. Параметры: -h Показать эту справку и выйти. -V Показать версию программы и выйти. -v Выводить подробную информацию при выполнении действий. -q Отключение предупреждений и сообщений об ошибках во время работы программы (тихий режим). -Q УРОВЕНЬ Устанавливает уровень ведения логов на d(отладка), i(информация), w(предупреждение), e(ошибки) или m(безмолвный). -b Показать большие двоичные значения. -u Показать неизвестные теги. -g КЛЮЧ Показать в выводе только информацию об этом ключе (grep). -K КЛЮЧ Показать в выводе только информацию об этом ключе (точное совпадение). -n КОДИРОВКА Кодировка, используемая для декодирования пользовательских комментариев UNICODE Exif. -k Сохранять отметку времени файлов (keep). -t Также установить отметку времени файла в действии 'rename' (переименовать) (отменяет -k). -T Только установить отметку времени файла в действии 'rename' (переименовать), не переименовывая файл (отменяет -k). -f Не запрашивать подтверждение на перезапись файлов (force). -F Не запрашивать подтверждение на переименование файлов (Force). -a ВРЕМЯ Новое значение времени в формате [-]ЧЧ[:ММ[:СС]]. Этот ключ используется только с действием 'adjust'. -Y ГОД Новое значение года для действия 'adjust'. -O МЕСЯЦ Новое значение месяца для действия 'adjust'. -D ДЕНЬ Новое значение дня для действия 'adjust'. -p РЕЖИМ Режим печати для действия print (вывод). Возможные режимы: s : вывести сводку метаданных Exif (по умолчанию) a : вывести метаданные Exif, IPTC и XMP (сокращение для -Pkyct) e : вывести метаданные Exif (сокращение для -PEkycv) t : интерпретированные (переведённые) данные Exif (-PEkyct) v : простые значения данных Exif (-PExgnycv) h : шестнадцатеричный дамп данных Exif (-PExgnycsh) i : значения данных IPTC (-PIkyct) x : свойства XMP (-PXkyct) c : комментарий JPEG p : список доступных превью C : распечатать профиль ICC, встроенный в изображение R : рекурсивная печать структуры изображения S : печать структуры изображения X : извлечь XMP из изображения -P ФЛАГИ Печатает флаги для точного контроля списков тегов (действие 'print'): E : исключить из списка теги Exif I : наборы данных IPTC X : свойства XMP x : распечатать столбец с номером тега g : имя группы k : ключ l : метка тега n : имя тега y : тип c : количество компонентов (count) s : размер в байтах v : обычное значение данных t : интерпретированные (переведённые) данные h : шестнадцатеричный дамп данных -d ЦЕЛЬ Удаляемые цели для действия 'delete' (удаление). Возможные цели: a : все поддерживаемые метаданные (по умолчанию) e : раздел Exif t : только Exif-эскиз i : данные IPTC x : пакет XMP c : комментарий JPEG -i ЦЕЛЬ Вставляемые цели для действия 'insert' (вставка). Возможные цели те же что и и для ключа -d плюс модификатор: X : Вставить метаданные из сопутствующего файла XMP <файл>.xmp Можно вставлять только эскизы в формате JPEG, и их имя должно иметь вид <ФАЙЛ>-thumb.jpg -e ЦЕЛЬ Извлечь цель(и) для действия 'extract' (извлечь). Возможные цели такие же, как и для опции -d, плюс цель для извлечения изображений предварительного просмотра и модификатор для создания сопроводительного файла XMP: p[[, ...]] : Извлечь изображения предварительного просмотра. X : Извлечь метаданные в сопроводительный файл XMP <ФАЙЛ>.xmp -r ФОРМАТ Формат имени файла для действия 'rename' (переименование). Строка формата следует правилам из strftime(3). Поддерживаются следующие ключевые слова: :basename: - оригинальное имя файла без расширения :dirname: - имя каталога, содержащего оригинальный файл :parentname: - имя родительского каталога Форматом файлов по умолчанию является %Y%m%d_%H%M%S. -c ТЕКСТ Строка комментария JPEG для записи в изображение. -m ФАЙЛ Командный файл для действия изменения. Формат для команд: set|add|del <КЛЮЧ> [[<ТИП>] <ЗНАЧЕНИЕ>]. -M КОМАНДА Командная строка для действия 'modify' (изменение). Формат команд такой же, как и у строк командного файла. -l каталог Расположение (каталог) вставляемых или извлекаемых файлов. -S .СУФФИКС Использовать суффикс .СУФФИКС для оригинальных файлов с командой insert (вставка).
Руководство по Exiv2
ИМЯ
exiv2 — Инструмент для работы с метаданными изображений
СИНОПСИС
exiv2 [опции] [действие] файл ...
ОПИСАНИЕ
exiv2 — это программа для чтения и записи метаданных Exif, IPTC, XMP и комментариев к изображениям, которая может читать многие теги с примечаниями производителя различных вендоров. Программа дополнительно выполняет преобразование между тегами Exif, свойствами XMP и наборами данных IPTC в соответствии с рекомендациями стандарта Exif, стандарта IPTC, спецификации XMP и руководств Рабочей группы по метаданным (Metadata Working Group).
Поддерживаются следующие форматы изображений:
Тип Exif IPTC XMP Комментарий изображения Профиль ICC ───────────────────────────────────────────────────────────────────────────────────────────── JPEG Чтение/Запись Чтение/Запись Чтение/Запись Чтение/Запись Чтение/Запись EXV Чтение/Запись Чтение/Запись Чтение/Запись Чтение/Запись Чтение/Запись CR2 Чтение/Запись Чтение/Запись Чтение/Запись - Чтение/Запись CRW Чтение/Запись - - Чтение/Запись - MRW Чтение Чтение Чтение - - TIFF Чтение/Запись Чтение/Запись Чтение/Запись - Чтение/Запись WEBP Чтение/Запись - Чтение/Запись - Чтение/Запись DNG Чтение/Запись Чтение/Запись Чтение/Запись - Чтение/Запись NEF Чтение/Запись Чтение/Запись Чтение/Запись - Чтение/Запись PEF Чтение/Запись Чтение/Запись Чтение/Запись - Чтение/Запись ARW Чтение Чтение Чтение - - RW2 Чтение Чтение Чтение - - SR2 Чтение Чтение Чтение - - SRW Чтение/Запись Чтение/Запись Чтение/Запись - - ORF Чтение/Запись Чтение/Запись Чтение/Запись - - PNG Чтение/Запись Чтение/Запись Чтение/Запись Чтение/Запись Чтение/Запись PGF Чтение/Запись Чтение/Запись Чтение/Запись Чтение/Запись Чтение/Запись RAF Чтение Чтение Чтение - - EPS - - Чтение/Запись - - XMP - - Чтение/Запись - - GIF - - - - - PSD Чтение/Запись Чтение/Запись Чтение/Запись - - TGA - - - - - BMP - - - - - JP2 Чтение/Запись Чтение/Запись Чтение/Запись - Чтение/Запись
• Поддержка изображений GIF, TGA и BMP минимальна: распознаётся формат изображения, определяется присвоенный ему тип MIME, а также высота и ширина изображения.
• Чтение других форматов изображений RAW, подобных TIFF, которые не указаны в таблице, также может работать.
ДЕЙСТВИЯ
Аргумент действия требуется только в том случае, если из параметров не ясно, какое действие подразумевается.
pr | print
Распечатать метаданные изображения. Это действие по умолчанию, т.е. команда
exiv2 image.jpg
распечатает сводку метаданных Exif изображения.
ex | extract
Извлечь метаданные в *.exv, сопроводительные файлы XMP (*.xmp) и файлы эскизов изображений. Команды модификации можно применять на лету.
in | insert
Вставить метаданные из соответствующих *.exv, XMP сопроводительных файлов (*.xmp) и эскизов. Используйте опцию -S .СУФФИКС, чтобы изменить суффикс входных файлов. Поскольку файлы любого поддерживаемого формата могут использоваться в качестве входных файлов, эту команду можно использовать для копирования метаданных между файлами разных форматов. Команды модификации можно применять на лету.
rm | delete
Удалить метаданные изображения из файлов.
ad | adjust
Подправить временные метки Exif по заданному времени. Требуется хотя бы одна из опций -a ВРЕМЯ, -Y ГОД, -O МЕСЯЦ или -D ДЕНЬ.
mo | modify
Применить команды для изменения (add, set, delete — добавления, установки, удаления) метаданных Exif, IPTC и XMP файлов изображений. Требуется опция -c, -m или -M.
mv | rename
Переименовать файлы и/или установить отметки времени файлов в соответствии с меткой времени создания Exif. Использует значение тега Exif.Photo.DateTimeOriginal или, если он отсутствует, Exif.Image.DateTime для определения метки времени. Формат имени файла может быть установлен с помощью -r ФОРМАТ, опции отметки времени это -t и -T.
fi | fixiso
Скопировать настройку ISO из одного из проприетарных тегов ISO производителя Nikon или Canon в обычный тег ISO Exif, Exif.Photo.ISOSpeedRatings. Не перезаписывает существующий стандартный тег Exif ISO.
fc | fixcom
Исправить кодировку символов в комментариях пользователей Exif Unicode. Декодирует комментарий с использованием автоматически определённой или указанной кодировки символов и записывает его обратно в UCS-2. При необходимости используйте опцию -n, чтобы указать текущую кодировку комментария.
КРАТКАЯ СВОДКА ПО КОМАНДАМ
exiv2 [ опция [аргумент] ]+ [ действие ] файл ...
Сводная таблица:
опция [аргумент] длинная опция описание -a ВРЕМЯ --adjust Изменить отметку времени. [+|-]HH[:MM[:SS[.mmm]]] -b --binary Показать большие двоичные значения (по умолчанию их вывод ограничен). -c ТЕКСТ --comment Строка комментария JPEG для записи в изображение (действие 'modify'). ... -d ЦЕЛЬ --delete Удалить цель(и) для действия 'delete'. ... -D +-n --days Корректировка времени на положительное или отрицательное количество дней ... -e ЦЕЛЬ --extract Извлечь цель(и) для действия 'extract'. -f --force Не спрашивать подтверждения перед перезаписью существующих файлов ... -F --Force Не спрашивать подтверждения перед переименованием файлов (принудительное переименование) ... -g КЛЮЧ --grep Вывести информацию только для этого ключа Exiv2 (поиск по совпадению части строки) -h --help Показать справку и выйти. -i ЦЕЛЬ --insert Вставить цель(и) для действия 'insert'. ... -k --keep Сохранить отметки времени файла при обновлении файлов -K КЛЮЧ --key Показать ключ. Похоже на -g (grep), но ключ должен совпасть в точности. -l ДИРЕКТОРИЯ --location Расположение (директория) файлов для вставки или извлечения. -m ФАЙЛ --modify Прочитать команды из cmd-файла -M КОМАНДА --Modify Строка команды для действия 'modify'. ... -n КОДИРОВКА --encode Кодировка для декодирования пользовательских комментариев Exif Unicode. Смотрите: man 3 iconv_open -O +-n --months Корректировка времени на положительное или отрицательное количество месяцев, ... -p РЕЖИМ --print Вывести отчёт (обычные отчёты) -P ФЛАГ --Print Вывести отчёт (отчёты с точной настройкой) -q --quiet Отключение предупреждений и сообщений об ошибках из библиотеки Exiv2 ... -Q УРОВЕНЬ --log Установить уровень журнала на 'd'(отладка), 'i'(информация), 'w'(предупреждения), 'e'(ошибки) -r ФОРМАТ --rename Формат имени файла для действия 'rename'. ... -S СУФФИКС --suffix Использовать .СУФФИКС для исходных файлов для действия 'insert'. -t --timestamp Установить отметки времени файла в соответствии с отметкой времени создания Exif ... -T --Timestamp Только установить отметки времени файла в соответствии с отметкой времени создания Exif ... -u --unknown Показывать неизвестные теги ... -v --verbose Вербальность -V --version Показать версию программы и выйти. -Y +-n --years Корректировка времени на положительное или отрицательное число лет ... ДЕЙСТВИЕ pr | ex | in | rm | ad | mo | mv | fi | fc print, extract, insert, delete, adjust, modify, rename, fixiso, fixcom КОМАНДА Смотрите "Команды" ниже. ФЛАГ E | I | X | x | g | k | l | n | y | c | s | v | t | h Exif, IPTC, XMP, число, grp, ключ, ярлык, имя, тип, счётчик, размер, без обработки, переведено, hex ФОРМАТ Форматом по умолчанию является %Y%m%d_%H%M%S. УРОВЕНЬ d | i | i | w | e debug, info, warning, error РЕЖИМ s | a | e | t | v | h | i | x | c | p | i | C | R | S | X итог, всё, exif, переведённое, без обработки, hex, iptc, xmp, комментарий, превью, профиль ICC, Recursive Structure, Simple Structure, raw XMP ЦЕЛЬ a | c | e | i | p | t | x | C | X | XX | - всё, комментарий, exif, iptc, preview, thumb, xmp, профиль ICC, сопутствующий файл, RawXMP, stdin/out
ОПЦИИ
-h
Показать справку и выйти.
-V
Показать версию программы и выйти.
Когда -V сочетается с -v (подробный вывод), информация о сборке выводится на стандартный вывод вместе со списком разделяемых библиотек, которые были загружены в память.
Подробный вывод версии поддерживается в Windows (сборки MSVC, Cygwin и MinGW), macOS и Linux и предназначена для тестирования и отладки.
-v
Больше выводимой информации во время работы программы.
-q
Отключение предупреждений и сообщений об ошибках из библиотеки Exiv2 во время работы программы (тихий режим). Обратите внимание, что параметры -v и -q можно использовать одновременно.
-Q УРОВЕНЬ
Установит уровень журнала на 'd'(отладка), 'i'(информация), 'w'(предупреждения), 'e'(ошибки) или 'm'(безмолвный). Уровень журнала по умолчанию это «w». Сочетание опций -Qm эквивалентно опции -q. Все сообщения журнала записываются в стандартный вывод ошибок.
-b
По умолчанию вывод больших двоичных значений ограничен. При выводе величины с большим значением, такого как MakerNote (заметки производителя), поведение по умолчанию — ограничить данные и закончить их вывод с «…». Параметр --binary позволяет вам видеть все данные.
-u
Показывать неизвестные теги (по умолчанию теги, у которых нет имени, не показываются).
-g КЛЮЧ
Только ключи, которые соответствуют данному ключу (grep — используется поиск по части имени).
Для фильтрации информации по меньшему количеству ключей можно использовать несколько опций -g. Пример:
exiv2 -v -V -g webready -g time
Команда exiv2 по умолчанию печатает «итоговый отчёт», который довольно короткий. Когда вы используете -g без опции -pmod, вы не получаете сводный отчёт, а фактически получаете
exiv2 -g КЛЮЧ -pa ИЗОБРАЖЕНИЕ ...
Пример использования:
exiv2 -g Date http://clanmills.com/Stonehenge.jpg
Пример вывода:
Exif.Image.DateTime Ascii 20 2015:07:16 20:25:28 Exif.Photo.DateTimeOriginal Ascii 20 2015:07:16 15:38:54 Exif.Photo.DateTimeDigitized Ascii 20 2015:07:16 15:38:54 Exif.NikonWt.DateDisplayFormat Byte 1 Y/M/D Exif.GPSInfo.GPSDateStamp Ascii 11 2015:07:16 Xmp.xmp.ModifyDate XmpText 25 2015-07-16T20:25:28+01:00
Вы можете использовать фильтры -pmod для дальнейшей фильтрации вывода. Например:
exiv2 -px -g Date http://clanmills.com/Stonehenge.jpg Xmp.xmp.ModifyDate XmpText 25 2015-07-16T20:25:28+01:00
Параметр -g (--grep) применяется к ключам, а не к значениям.
Ключ может заканчиваться необязательным модификатором /i, чтобы указать нечувствительность к регистру.
-K КЛЮЧ
Выводить только данные для данного ключа.
Несколько опций -K могут использоваться для вывода более чем одного ключа.
exiv2 -K Exif.Photo.DateTimeDigitized -K Exif.Photo.DateTimeOriginal -pt R.jpg Exif.Photo.DateTimeOriginal Ascii 20 2011:09:18 16:25:48 Exif.Photo.DateTimeDigitized Ascii 20 2011:09:18 16:25:48
-n КОДИРОВКА
Кодировка, используемая для декодирования комментариев пользователей Exif Unicode. КОДИРОВКА — это имя, понятное для iconv_open(3), например, 'UTF-8'.
-k
Сохранять отметки времени файлов при обновлении файлов (от слова keep). Может использоваться со всеми опциями обновления файлов. Флаг игнорируется опциями только для чтения.
-t
Установит отметку времени файла в соответствии с меткой времени создания Exif в дополнение к переименованию файла (отменяет -k). Эта опция используется только с действием «rename» (переименовать). Смотрите Exif DateTime ниже для получения дополнительной информации.
-T
Устанавливать только отметку времени файла в соответствии с отметкой времени создания Exif, не переименовывая файл (переопределяет -k). Эта опция используется только с действием «rename» (переименовать).
Примечание. В Windows вам может потребоваться установить переменную среды TZ, чтобы этот параметр работал правильно. Смотрите Exif DateTime ниже для получения дополнительной информации.
-f,-F
Эти опции используются командами «rename» (переименовать) и «extract» (извлечь) для определения политики перезаписи файлов. Эти опции обычно комбинируются с -v/--verbose, чтобы обеспечить дополнительный вывод состояния.
Параметры --force и --Force применяются к команде «rename» (переименовать). Команда «extract» (извлечь) рассматривает --force и --Force как разрешение на перезапись.
По умолчанию программа у пользователя спрашивает разрешение на указанные действия.
-f = Не запрашивать перед перезаписью существующих файлов.
-F = Не запрашивать перед переименованием файлов. Добавляет '_1' ('_2', …) к имени нового файла. Например:
curl --silent -O http://clanmills.com/Stonehenge.jpg exiv2 --verbose --Force rename Stonehenge.jpg File 1/1: Stonehenge.jpg Renaming file to ./20150716_153854.jpg curl --silent -O http://clanmills.com/Stonehenge.jpg exiv2 --verbose --Force rename Stonehenge.jpg File 1/1: Stonehenge.jpg Renaming file to ./20150716_153854_1.jpg
Команда «rename» перезапишет файлы только при использовании параметра --force. Параметр --Force предназначен для предотвращения непреднамеренной потери ценных файлов изображений.
Команда «extract» (извлечь) перезапишет файлы при использовании --force или --Force. Перезапись извлечённых файлов не приведёт к потере файлов изображений.
-r ФОРМАТ
Формат имени файла для действия «rename» (переименовать). Строка формата соответствует за strftime(3) и поддерживает следующие ключевые слова:
:basename: исходное имя файла без расширения :dirname: имя каталога, в котором находится исходный файл :parentname: имя родительского каталога
Формат имени файла по умолчанию: Y%m%d_%H%M%S.
-a ВРЕМЯ
Настройка времени в формате [-]HH[:MM[:SS]]. Эта опция используется только с действием «adjust» «подправить». Примеры: 1 добавляет один час, 1:01 добавляет один час и одну минуту, -0:00:30 вычитает 30 секунд. Смотрите Exif DateTime ниже для получения дополнительной информации.
-Y ГОД
Корректировка времени на положительное или отрицательное число лет для действия «adjust».
-O МЕСЯЦ
Корректировка времени на положительное или отрицательное количество месяцев для действия «adjust».
-D ДЕНЬ
Корректировка времени на положительное или отрицательное количество дней для действия «adjust».
-p РЕЖИМ
Режим печати для действия «print» (печать). Возможные режимы:
s : вывести сводку метаданных Exif (по умолчанию) a : вывести метаданные Exif, IPTC и XMP (сокращение для -Pkyct) e : вывести метаданные Exif (сокращение для -PEkycv) t : интерпретированные (переведённые) данные Exif (-PEkyct) v : простые значения данных Exif (-PExgnycv) h : шестнадцатеричный дамп данных Exif (-PExgnycsh) i : значения данных IPTC (-PIkyct) x : свойства XMP (-PXkyct) c : комментарий JPEG p : список доступных превью, отсортированных по размеру изображения превью в пикселях C : распечатать профиль ICC изображения (только для jpg, png, tiff, webp, cr2, jp2) R : рекурсивная печать структуры изображения (только для jpg, png, tiff, webp, cr2, jp2) S : печать информацию о структуре изображения (только для jpg, png, tiff, webp, cr2, jp2) X : печать "raw" (необработанный) XMP (только для jpg, png, tiff, webp, cr2, jp2)
-P ФЛАГИ
Флаги печати для точного управления списком тегов (действие «print»). Позволяет контролировать тип метаданных, а также столбцы данных, включаемые в вывод на печать. Допустимые флаги:
E : исключить из списка теги Exif I : наборы данных IPTC X : свойства XMP x : распечатать столбец с номером тега g : имя группы k : ключ l : метка тега n : имя тега y : тип c : количество компонентов (count) s : размер в байтах v : обычное значение данных (без обработки, vanilla значения) V : обычное значение данных И слово 'set ' (для использования с exiv2 -m-) t : интерпретированные (переведённые) данные для удобного восприятия человеком h : шестнадцатеричный дамп данных
-d ЦЕЛЬ
Удалить цель(и) для действия «delete» (удалить). Возможные цели:
a : все поддерживаемые метаданные (по умолчанию) e : раздел Exif t : только Exif-эскиз i : данные IPTC x : пакет XMP c : комментарий JPEG C : профиль ICC I : все данные IPTC
-i ЦЕЛЬ
Указать цель(и) для действия 'insert' (вставить). Возможные цели такие же, как и для опции -d, плюс необязательный модификатор:
X :
Вставить метаданные из сопроводительного файла XMP ФАЙЛ.xmp. Остальные цели вставки определяют, какие метаданные вставлять из сопроводительного файла. Возможны Exif, IPTC и XMP, по умолчанию — все они. Обратите внимание, что вставленные свойства XMP включают те, которые преобразованы в Exif и IPTC.
XX :
Вставить «сырые» метаданные XMP из сопроводительного файла (смотрите опцию -pX)
- :
Читать из стандартного ввода. Эта опция предназначена для таких операций «filter» (фильтрации), как:
exiv2 -e{ЦЕЛЬ}- ИМЯФАЙЛА | xmllint .... | exiv2 -i{ЦЕЛЬ}- ИМЯФАЙЛА
Могут быть вставлены только эскизы JPEG (не эскизы TIFF), и они должны иметь имя file-thumb.jpg.
-e ЦЕЛЬ
Извлекает цель(и) для действия «extract» (извлечения). Возможные цели такие же, как и для опции -d, плюс цель для извлечения изображений предварительного просмотра и модификатор для создания сопроводительного файла XMP:
p[
Извлечение изображений для предварительного просмотра. Необязательный список номеров изображений предварительного просмотра, разделённых запятыми, используется для определения изображений предварительного просмотра для извлечения. Доступные изображения предварительного просмотра и их номера отображаются с опцией -pp действия «print».
C :
Извлечь встроенный профиль ICC в <ФАЙЛ>.icc
X :
извлечь метаданные в сопроводительный файл XMP <ФАЙЛ>.xmp. Остальные цели извлечения определяют, какие метаданные извлекать в сопроводительный файл. Возможны Exif, IPTC и XMP, по умолчанию — все они.
XX :
извлекать «сырые» метаданные XMP в сопроводительный файл (смотрите опцию -pX)
Вы не можете использовать команды изменения (modify) с параметром -eXX, и в сопроводительный файл записывается только XMP.
- :
Вывод в stdout (стандартный вывод) (смотрите опцию -i ЦЕЛЬ для примера использования этой функции)
-c ТЕКСТ
Строка комментария JPEG для записи в изображении (действие «modify» (изменить)). Эта опция также может использоваться с действиями «extract» (извлечь) и «insert» (вставить) для изменения метаданных на лету.
-m ФАЙЛ
Командный файл для действия «modify». Эта опция также может использоваться с действиями «extract» и «insert» для изменения метаданных на лету. -m- представляет стандартный ввод.
-M КОМАНДА
Командная строка для действия «modify». Эта опция также может использоваться с действиями «extract» и «insert» для изменения метаданных на лету. Формат команд такой же, как и у строк командного файла.
-l ДИРЕКТОРИЯ
Местоположение (каталог) для файлов, которые нужно вставить или извлечь.
-S .СУФФИКС
Используйте суффикс .СУФФИКС для исходных файлов в действии «insert (вставить).
КОМАНДЫ
Команды для действия «modify» (изменить) можно прочитать из командного файла, например,
exiv2 -m cmd.txt image.jpg
или они задаются в командной строке, как в следующем примере:
exiv2 -M"add Iptc.Application2.Credit String Mr. Smith" image.jpg
Обратите внимание на кавычки. Можно объединить несколько параметров -m и -M и зарегистрировать нестандартное пространство имён XMP.
exiv2 -M"reg myprefix http://ns.myprefix.me/" -M"add Xmp.myprefix.Whom Mr. Smith" -M"set Exif.Image.Artist Mr. Smith" image.jpg
При записи метаданных Exif, IPTC и XMP exiv2 принудительно устанавливает только правильную структуру метаданных. Но можно писать теги с типами и значениями, отличными от указанных в стандартах, дублировать теги Exif, неопределённые теги или неполные метаданные. Хотя exiv2 может читать все метаданные, которые он может писать, у других программ могут возникнуть трудности с изображениями, которые содержат метаданные, не соответствующие стандартам.
Формат команды
Это команда, которая может быть указана с опцией -M КОМАНДА или с опцией -m ФАЙЛ
Формат команды следующий:
set | add | del КЛЮЧ [[ТИП] ЗНАЧЕНИЕ]
set
Установить значение существующего тега с соответствующим ключом или добавить тег.
add
Добавить тег (если ключ не является неповторяющимся ключом IPTC; ничто не мешает вам добавить повторяющиеся теги Exif).
del
Удалить все вхождения тега (требуется только ключ).
ключ
Exiv2 ключ Exif, IPTC или XMP.
тип
Ключи Exif: Byte | Ascii | Short | Long | Rational | Undefined | SShort | SLong | SRational | Comment
Ключи IPTC: String | Date | Time | Short | Undefined
Ключи XMP: XmpAlt | XmpBag | XmpSeq | LangAlt
Используется тип по умолчанию, если он не указан явно. Значение по умолчанию определяется на основе ключа.
значение
Остающийся текст в строке — это значение. При желании его можно заключить в одинарные кавычки ('значение') или двойные кавычки ("значение").
Значение не является обязательным. Отсутствие значения равнозначно пустому значению ("") и в основном полезно для создания свойства массива XMP, например, bag.
Формат значений Exif Comment включает необязательную спецификацию кодировки в начале. Комментарии используются тегами Exif.Photo.UserComment, Exif.GPSInfo.GPSProcessingMethod и Exif.GPSInfo.GPSAreaInformation. Комментарии хранятся в виде неопределённых тегов с 8-байтовым определением кодировки, за которым следуют закодированные данные. Кодировка указывается следующим образом:
[charset=Ascii|Jis|Unicode|Undefined] комментарий
charset=Undefined это значение по умолчанию
exiv2 -M'set Exif.Photo.UserComment charset=Ascii My photo' x.jpg exiv2 -pa --grep UserComment x.jpg Exif.Photo.UserComment Undefined 16 My photo exiv2 -pv --grep UserComment x.jpg 0x9286 Photo UserComment Undefined 16 charset=Ascii My photo exiv2 -M'set Exif.Photo.UserComment charset=Unicode \u0052\u006f\u0062\u0069\u006e' x.jpg exiv2 -pa --grep UserComment x.jpg Exif.Photo.UserComment Undefined 18 Robin exiv2 -pv --grep UserComment x.jpg 0x9286 Photo UserComment Undefined 18 charset=Unicode Robin exiv2 -M'set Exif.GPSInfo.GPSProcessingMethod HYBRID-FIX' x.jpg exiv2 -pa --grep ProcessingMethod x.jpg Exif.GPSInfo.GPSProcessingMethod Undefined 18 HYBRID-FIX exiv2 -pv --grep ProcessingMethod x.jpg 0x001b GPSInfo GPSProcessingMethod Undefined 18 HYBRID-FIX
Формат значения даты IPTC: ГГГГ-ММ-ДД (год, месяц, день).
Формат значения времени IPTC: ЧЧ:ММ:СС (часы, минуты, секунды) и может дополнительно сопровождаться: -ЧЧ:ММ или +ЧЧ:ММ (часы, минуты вперёд/назад по Гринвичу).
Формат Rational (и SRational) может быть одним из: целое | целое/целое | Fnumber | число
Примеры с рациональными числами:
exiv2 "-Mset Exif.Photo.MaxApertureValue 557429/62500" X.jpg exiv2 "-Mset Exif.Photo.MaxApertureValue F5.6" X.jpg
Рациональный формат Fnumber предназначен для удобства установки значений диафрагмы. Значения диафрагмы хранятся в Exif — это значение APEX, которое можно оценить с помощью выражения:
apex-value = log(Fnumber) * 2.0 / log(2.0) number = exp(apex-value * log(2.0) / 2.0)
Формат Rational Fnumber действителен для любого Rational, даже если ключ не является Aperture. Дополнительную информацию о значении APEX можно получить по адресу: http://en.wikipedia.org/wiki/APEX_system
Формат значений XMP LangAlt включает необязательный квалификатор языка:
lang="language-code" ТЕКСТ
lang="x-default" используется, если значение не начинается с квалификатора языка.
exiv2 -M'set Xmp.dc.title lang="de-DE" Euros' X.jpg exiv2 -M'set Xmp.dc.title lang="en-GB" Pounds' X.jpg exiv2 -M'set Xmp.dc.title lang="en-US" In God We Trust' X.jpg exiv2 -M'set Xmp.dc.title All others pay cash' X.jpg
Чтобы удалить спецификацию языка, установите значение на '' (пустая строка)
exiv2 -M'set Xmp.dc.title lang="en-US"' X.jpg
Чтобы удалить все языковые спецификации, удалите ключ:
exiv2 -M'del Xmp.dc.title' X.jpg
Чтобы зарегистрировать дополнительные пространства имён XMP, объедините команду с:
reg prefix namespace
Формат командного файла
Пустые строки и строки, начинающиеся с символа # в командном файле, игнорируются (это комментарии). Остальные строки — это команды, описанные выше.
ИМЕНА ТЕГОВ EXIF И ИХ ЗНАЧЕНИЯ
Exiv2 отображает теги и значения метаданных.
Тег представляет собой тройку Family.Group.Tagname. Для семейства Exif определены следующие группы:
GPSInfo Canon Fujifilm NikonLd1 OlympusFe1 Pentax Image CanonCf NikonLd2 OlympusFe2 PentaxDng Image2 CanonCs Nikon1 NikonLd3 OlympusFe3 Image3 CanonF1 Nikon2 NikonMe OlympusFe4 Samsung2 Iop CanonPa Nikon3 NikonPc OlympusFe5 SamsungPictureWizard MakerNote CanonPi NikonAFT NikonPreview OlympusFe6 SamsungPreview MpfInfo CanonPr NikonAf NikonSi01xx OlympusFe7 Photo CanonSi NikonAf2 NikonSi02xx OlympusFe8 Sony1 SubImage1 CanonTi NikonAf22 NikonSiD300a OlympusFe9 Sony1Cs SubImage2 NikonCb1 NikonSiD300b OlympusFi Sony1Cs2 SubImage3 Casio NikonCb2 NikonSiD40 OlympusIp Sony1MltCs7D SubImage4 Casio2 NikonCb2a NikonSiD80 OlympusRd Sony1MltCsA100 SubImage5 NikonCb3 NikonVr OlympusRd2 Sony1MltCsNew SubImage6 Minolta NikonCb4 NikonWt OlympusRi Sony1MltCsOld SubImage7 MinoltaCs5D NikonFi Sony2 SubImage8 MinoltaCs7D NikonFl1 Olympus Panasonic Sony2Cs SubImage9 MinoltaCsNew NikonFl2 Olympus2 PanasonicRaw Sony2Cs2 SubThumb1 MinoltaCsOld NikonFl3 OlympusCs Sony2Fp Thumbnail NikonIi OlympusEq Sigma SonyMinolta
Exiv2 поддерживает стандартные теги Exif 2.2. Exiv2 также поддерживает чтение и запись MakerNote производителя. Информация в Exif.Photo.MakerNote кодируется как суб-записи производителя. Например, CanonCs — это настройки камеры, NikonAf - записи автофокуса Nikon, NikonCb — записи цветового баланса Nikon. Каждый тег определяется уникальным tagId (16-битным целым числом), который уникален в пределах группы.
Вы можете запрашивать группы и теги Exiv2 с помощью списка тегов программы-примера, который задокументирован в README-SAMPLES.md
Значения метаданных Exif определены в стандарте Exif. Все данные представляют собой массив элементов данных. Счётчик определяет количество элементов в массиве. Все элементы в массиве имеют один и тот же тип.
Тип Объяснение 1 BYTE 8-битовое целое число без знака. 2 ASCII 7-битный ASCII. Оканчивается на NUL. 3 SHORT 16-битное (2-байтовое) целое число без знака. 4 LONG 32-битное (4-байтовое) целое число без знака. 5 RATIONAL Два LONG. Числитель, знаменатель. 7 UNDEFINED 8-битный байт. 8 SSHORT 16-битное (2-байтовое) целое число со знаком. 9 SLONG 32-битное (4-байтовое) целое число со знаком. 10 SRATIONAL Два SLONG. Числитель, знаменатель.
Флаг печати t = переведён и предназначен для использования людьми. Скрипты никогда не должны использовать переведённые значения, поскольку они локализованы, и формат может измениться по мере развития Exiv2. Флаг печати v сообщает значения, записанные в метаданных, и должен использоваться скриптами.
Exif DateTime
Строка Exif DateTime хранится как 20 байтов ascii (включая конечный ноль) в формате: ГГГГ:ММ:ДД ЧЧ:ММ:СС
Опции командной строки программы exiv2 -t и -T будут принимать файлы, в которых дата была неправильно сохранена как ГГГГ-ММ-ДД. Опция -a позволяет пользователю настроить DateTime в файле и применяет стандарт ГГГГ:ММ:ДД ЧЧ:ММ:СС.
ФАЙЛ КОНФИГУРАЦИИ
Exiv2 может читать необязательный файл конфигурации ~/.exiv2 в системах Unix и %USERPROFILE%\exiv2.ini в Windows (используя сборку Visual Studio). Cygwin и MinGW/msys2 следуют соглашению unix и используют ~/.exiv2. Вы можете определить местоположение файла конфигурации с помощью команды:
exiv2 --verbose --version --grep config_path exiv2 0.27.0.1 config_path=/Users/rmills/.exiv2
Назначение файла конфигурации — определить ваши собственные линзы для распознавания Exiv2. Файл конфигурации имеет формат .ini Windows и содержит разделы для всех основных производителей камер: canon, nikon, pentax, minolta, olympus и sony. Метаданные объектива хранятся в виде целого числа, называемого lensID. Вы можете изменить имя объектива, связанное с любым lensID.
cat ~/.exiv2 [nikon] 146=Robin's Sigma Lens <--- Имя ваших линз
Вы можете получить идентификатор объектива для своей камеры с помощью команды:
exiv2 -pv --grep lens/i http://clanmills.com/Stonehenge.jpg 0x0083 Nikon3 LensType Byte 1 14 0x0084 Nikon3 Lens Rational 4 180/10 2500/10 35/10 63/10 0x008b Nikon3 LensFStops Undefined 4 55 1 12 0 0x000c NikonLd3 LensIDNumber Byte 1 146 <--- Это число 0x000d NikonLd3 LensFStops Byte 1 55
СМОТРИТЕ ТАКЖЕ
Примеры командных файлов: https://exiv2.org/sample.html#modify
Список тегов с ключами и значениями типов по умолчанию: https://exiv2.org/metadata.html
Примеры запуска Exiv2
Печатает сводку информации Exif для всех файлов JPEG в каталоге. Сводный отчёт довольно краток, и в презентации не используется конвенционным Family.Group.Tag. Если вы используете шаблон --grep, значение по умолчанию становится -pa. Смотрите описание опции -g/grep выше.
exiv2 *.jpg
Вывести метаданные Exif, IPTC и XMP изображения (-p a это также сокращение для -Pkyct):
exiv2 -p a 20190930_095513.jpg
Для указанного изображения вывести все метаданные, чьё имя тега содержит «GPS»:
exiv2 -g GPS 20190930_095513.jpg
Для указанного изображения вывести все метаданные, чьё имя тега содержит «GPS» и при этом не переводить, то есть не обрабатывать данные (-p v также является синонимом -PExgnycv):
exiv2 -p v -g GPS 20190930_095513.jpg
Печатает метаданные IPTC изображения.
exiv2 -g Date http://clanmills.com/Stonehenge.jpg exiv2 -pi image.jpg
Переименовывает img_1234.jpg (файл снят 13 ноября 2005 в 22:58:31) в 20051113_225831.jpg
exiv2 rename img_1234.jpg
Переименовывает img_1234.jpg в img_1234_200511.jpg
exiv2 -r'basename_%Y%m' rename img_1234.jpg
Извлекает эскизы Exif из двух файлов в img1-thumb.jpg и img2-thumb.jpg.
exiv2 -et img1.jpg img2.jpg
Вставляет (копирует) метаданные из img1.exv в img1.jpg и из img2.exv в img2.jpg.
exiv2 -it img1.jpg img2.jpg
Извлекает превью 1 и 2 из изображения в файлы image-preview1.jpg и image-preview2.jpg.
exiv2 -ep1,2 image.jpg
Извлекает наборы данных IPTC в сопроводительный файл XMP image.xmp и в процессе преобразует их в схему XMP «IPTC Core».
exiv2 -eiX image.jpg
Вставляет метаданные IPTC и XMP из сопроводительного файла XMP image.xmp в image.jpg. Результирующие наборы данных IPTC преобразуются из свойств схемы XMP «IPTC Core» в сопроводительном файле в более старый формат IPTC IIM4. Добавленные свойства XMP включают свойства схемы XMP «IPTC Core».
exiv2 -iixX image.jpg
Устанавливает комментарий Exif на строку ASCII.
exiv2 -M"set Exif.Photo.UserComment charset=Ascii New Exif comment" image.jpg
Устанавливает широту на 4 градуса 15 минут и 33 секунды северной широты. Стандарт Exif предусматривает, что тег GPSLatitude состоит из трёх рациональных чисел для градусов, минут и секунд широты, а GPSLatitudeRef содержит либо «N», либо «S» для северной или южной широты соответственно.
exiv2 -M"set Exif.GPSInfo.GPSLatitude 4/1 15/1 33/1" -M"set Exif.GPSInfo.GPSLatitudeRef N" image.jpg
Скопирует все метаданные из файлов CRW в каталоге /tmp в файлы JPG с соответствующими базовыми именами в каталоге /data. Обратите внимание, что это копирует метаданные как есть, без каких-либо изменений, чтобы адаптировать их к требованиям целевого формата. Некоторые скопированные таким образом теги могут не иметь смысла в целевом изображении.
exiv2 insert -l/tmp -S.CRW /data/*.JPG
Установка Exiv2
Установка в Kali Linux
Программа предустановлена в Kali Linux.
Если у вас вариант с минимальным набором программ, то выполните следующие программы для установки:
sudo apt update sudo apt install exiv2
Установка в BlackArch
Программа предустановлена в BlackArch.
sudo pacman -S exiv2
Установка в Debian, Linux Mint, Ubuntu и их производные
Для установки достаточно выполнить команды:
sudo apt update sudo apt install exiv2
Установка в Windows
Перейдите на официальный сайт программы: https://exiv2.org/download.html и скачайте архив «exiv2-*msvc64.zip».
Распакуйте скаченный архив.
Для простоты переименуйте папку, например, «exiv2-0.27.3-2019msvc64» в «exiv2».
Исполнимые файлы находятся в папке bin.
Для работы с программой, её нужно запускать в командной строке. Если вы не знаете, что это такое, то прочитайте статью «Настройка рабочего окружения PowerShell в Windows и Linux».
Пример извлечения метаданных в Windows:
1. Откроем PowerShell — для этого нажмите Win+x и выберите «Windows PowerShell».
2. Допустим, файл exiv2.exe расположен в папке C:\Users\MiAl\Downloads\exiv2\bin\, перейдём в неё с помощью команды cd:
cd C:\Users\MiAl\Downloads\exiv2\bin\
3. Для извлечения метаданных из изображения, запустите команду вида:
.\exiv2.exe 'C:\ПУТЬ\ДО\КАРТИНКИ.jpg'
К примеру, файл изображения с метаданными расположен по пути C:\Users\MiAl\Documents\testing\foto\20191106_181909.jpg, тогда команды для извлечения из него метаданных следующие:
.\exiv2.exe 'C:\Users\MiAl\Documents\testing\foto\20191106_181909.jpg'
Расширение .exe указывать необязательно:
.\exiv2 -p a 'C:\Users\MiAl\Documents\testing\foto\20191106_181909.jpg'
.\exiv2 -p v -g GPS 'C:\Users\MiAl\Documents\testing\foto\20191106_181909.jpg'
Информация об установке в другие операционные системы будет добавлена позже.
Скриншоты Exiv2
Инструкции по Exiv2
- Массовый поиск геотэгов на сайтах и в локальном хранилище
- Руководство по GPS метаданным в фотографиях (ч. 1): Географические координаты и их извлечение из файлов
- Руководство по GPS метаданным в фотографиях (ч. 2): Как изменить GPS и другие метаданные в фотографии
Comments are Closed