Я использую exiv2 для управления метаданными в файле jpeg. Мне нужно записать больше информации, связанной с обработкой изображения, в метаданные. Можно ли создавать пользовательские теги Exif, отличные от стандартных?
Пользовательские Exif-теги
Ответы (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
Лучший способ иметь настраиваемые метаданные — использовать Adobe XMP с настраиваемым пространством имен.
Согласно моим исследованиям, теги EXIF соответствуют стандартному набору тегов, как описано здесь.
В стандартном документе говорится (в отношении тегов EXIF),
Система регистрации используется для кодов символов, чтобы избежать дублирования. Когда код символа зарегистрирован, стандартный документ указывается в справочной колонке, чтобы указать спецификацию формата символа. Если используется код символа, для которого нет четкой спецификации, такой как Shift-JIS в Японии, обозначается Undefined.
Поэтому, насколько я понимаю, существует стандартный набор тегов (зарегистрированных тегов), в противном случае, когда вы запрашиваете его с помощью такого инструмента, как exiftool, он будет отображаться как «Неопределенный».
Таким образом, чтобы иметь тег, распознаваемый инструментами или другими объектами, вам необходимо зарегистрировать свой тег, чтобы он стал частью стандартизированных тегов.
Я нашел способ добавлять пользовательские теги 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