Какая связь между exif и xmp? Они взаимозаменяемы?

Я пишу приложение, которое читает / записывает метаданные для изображения (оно преобразует необработанный файл в jpeg / tiff), и мне нужно записать метаданные о камере / режиме / ... в сгенерированный jpeg.

Я знаю, что могу сделать это с помощью exif, а в Windows я использую для этого GDI. Но я читаю информацию о xmp и xmp sdk от Adobe.

Мне интересно, какой из них мне использовать? exif или xmp?

Как они соотносятся друг с другом?

Почему один может выбрать запись метаданных exif, а кто-то другой может выбрать XMP? Какие плюсы / минусы выбора любого из них.

Я пишу на c ++ в windows (Visual Studio 2012)


person mans    schedule 27.01.2014    source источник
comment
Может быть, лучший вопрос для photo.stackexchange.com   -  person Micha    schedule 27.01.2014


Ответы (2)


Если вы пишете форматы JPEG или TIFF, я думаю, вам следует придерживаться Exif.

Все считыватели формата TIFF смогут анализировать Exif, поскольку Exif является подмножеством TIFF (суб-IFD со специальными тегами, определяемыми Exif). Большинство читателей JPEG также умеют разбирать Exif / TIFF.

Теперь вы, конечно, также можете добавить XMP в файл, но я предлагаю вам сделать это в дополнение к обычному Exif, и только если вам это действительно нужно.

XMP позволяет использовать более богатые метаданные. Но поскольку метаданные, которые у вас есть, взяты из файла RAW камеры, я бы подумал, что они сопоставляются непосредственно с тегами Exif, учитывая, что Exif был разработан индустрией цифровых камер для именно того использования, которое вы описываете.

Итак, в основном: используйте Exif, потому что он имеет лучшую поддержку инструментов. Добавляйте XMP, только если он вам нужен, для более обширных метаданных.

person Harald K    schedule 03.02.2014

XMP действительно сопоставляет значения с тегами exif.
И EXIF, и XMP являются богатыми источниками метаданных изображения.
Преимущество XMP в том, что он легко читается, и любое приложение, поддерживающее XMP (как и все продукты Adobe), может манипулировать эти свойства.

XMP извлекает значения из собственных значений в изображении, поэтому в основном XMP обеспечивает сопоставление между свойствами в блоке exif в изображениях и согласовывает эти значения в пространствах имен XMP, как определено в документации ADOBE XMP SDK.
Преимущество использования XMP SDK для управления метаданными заключается в том, что затем ответственность за согласование между различными форматами метаданных изображения (например, exif, IPTC или XMP) во время чтения или записи передается на XMP SDK.

Если в свойство XMP вносятся какие-либо изменения, они отражаются обратно в блок exif в изображении. Точно так же, если какое-либо приложение, не поддерживающее XMP, изменило метаданные exif без изменения соответствующего значения xmp, во время операции чтения XMP SDK согласовывает это изменение со значением XMP, и во время записи это изменение будет сохранено обратно.

Использование XMP SDK для управления метаданными в основном проще, поскольку вы можете оставить много деталей, связанных с форматом, для обработки SDK.

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

Полную спецификацию можно загрузить с здесь.

person Ankita Sharma    schedule 10.06.2014