Пользовательские Exif-теги

Я использую exiv2 для управления метаданными в файле jpeg. Мне нужно записать больше информации, связанной с обработкой изображения, в метаданные. Можно ли создавать пользовательские теги Exif, отличные от стандартных?


person Senan    schedule 31.05.2012    source источник


Ответы (4)


Из http://www.exif.org/Exif2-2.PDF:

Д. Теги, относящиеся к пользовательской информации

MakerNote
Тег для производителей записывающих устройств Exif для записи любой необходимой информации. Содержимое зависит от производителя, но этот тег не следует использовать для каких-либо иных целей, кроме тех, для которых он предназначен.
Тег = 37500 (927C.H)
Тип = НЕОПРЕДЕЛЕН
Количество = Любой
По умолчанию = нет

UserComment
Тег, позволяющий пользователям Exif писать ключевые слова или комментарии к изображению помимо тех, которые указаны в ImageDescription, и без ограничений кода символов тега ImageDescription.
Тег = 37510 (9286.H)
Тип = UNDEFINED
Количество = Любой
По умолчанию = нет

exiv2 поддерживает теги MakerNote: http://dev.exiv2.org/projects/exiv2/wiki/How_to_add_support_for_a_new_makernote

Если вы не хотите этого делать, вы можете использовать UserComment: http://www.exiv2.org/doc/exifcomment_8cpp-example.html

person Peter Bagyinszki    schedule 31.05.2012
comment
Спасибо, Питер. Но я действительно хочу знать, можно ли определить собственный тег, отличный от стандартных. - person Senan; 01.06.2012

Лучший способ иметь настраиваемые метаданные — использовать Adobe XMP с настраиваемым пространством имен.

person Yoav    schedule 07.10.2012

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

В стандартном документе говорится (в отношении тегов EXIF),

Система регистрации используется для кодов символов, чтобы избежать дублирования. Когда код символа зарегистрирован, стандартный документ указывается в справочной колонке, чтобы указать спецификацию формата символа. Если используется код символа, для которого нет четкой спецификации, такой как Shift-JIS в Японии, обозначается Undefined.

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

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

person Randoramma    schedule 11.01.2018
comment
Это также отражено в FAQ. - person starfry; 28.02.2018
comment
Кажется, речь идет о кодировках символов, а не о пользовательских полях EXIF. - person hippietrail; 05.04.2019

Я нашел способ добавлять пользовательские теги EXIF ​​в файлы с помощью ExifTool.

Мне пришлось создать файл конфигурации для полей, которые я хотел:

%Image::ExifTool::UserDefined = (
'Image::ExifTool::Exif::Main' => {
    0xd001 => {
        Name => 'Category',
        Writable => 'string',
        WriteGroup => 'IFD0',
    },
    0xd002 => {
        Name => 'PhotoID',
        Writable => 'string',
        WriteGroup => 'IFD0',
    },
    # add more user-defined EXIF tags here...
  },
);

Затем вы можете писать в поля с помощью exiftool:

exiftool -config exif.config -EXIF:PhotoID=15 -EXIF:Category=Cars c:\temp\pic.png

Чтобы прочитать информацию EXIF:

exiftool -config exif.config c:\temp\pic.png
person KnuturO    schedule 07.07.2021