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

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

  • ExifTool (100%)
  • Geotag (100%)
  • mat (65.7%)
  • mat2 (65.7%)
  • PDF Redact Tools (43.9%)
  • Python-dsstore (RANDOM - 11.5%)
  • Рекомендуется Вам:

    Comments are Closed