Чтобы ответить на ваши вопросы:
может ли каждое из этих изображений иметь данные EXIF? Создает ли это новый IFD для метаданных каждого изображения? Каково расположение IFD?
Да, каждое из этих изображений может иметь свои собственные данные EXIF. Каждое изображение связано со своим собственным IFD, и каждый EXIF-данные является SUB-IFD внутри соответствующего IFD изображения.
но библиотека Java Sanselan дает мне легкий доступ к EXIF IFD и полям, но если возможно несколько EXIF IFD (по одному для каждого изображения), то библиотека не сообщает мне, к какому изображению относятся данные.
Я никогда не использовал Sanselan и его преемника Apache Imaging, поэтому я думаю, что здесь может произойти две вещи: во-первых, Sanselan может по умолчанию выбрать первую страницу для многостраничного TIFF, если вы действительно можете вставить EXIF в многостраничный TIFF; или может быть параметр, который можно установить где-нибудь с помощью метода, подобного setWorkingPage(int page)
, и это то, что я делаю с библиотекой изображений Java " icafe ".
Ниже приведена более подробная информация о том, что происходит внутри изображения TIFF, когда вам необходимо добавить метаданные EXIF:
Для одностраничного TIFF существует «основной» IFD, который определяет всю информацию, касающуюся содержащегося там изображения. Когда требуются данные EXIF, в основной IFD добавляется специальный тег EXIF_SUB_IFD. Значение для этого тега является адресом смещения относительно начала потока изображения. Теперь, если мы перейдем к адресу, указанному смещением, мы на самом деле найдем «подчиненный» IFD с точно такой же структурой, что и «основной» IFD, который содержит все данные EXIF.
Вышеупомянутая структура в точности подобна дереву каталогов и, следовательно, имени IFD Однако здесь есть небольшая разница: основной IFD должен содержать фактические данные изображения, а суб-IFD EXIF - нет. Фактически, есть также суб-IFD GPS, который параллельно с суб-IFD EXIF и с той же структурой. Интересно, что данные для EXIF могут храниться в любом месте потока изображений TIFF (при условии, что они не нарушают другую часть каталога и данные изображения).
Теперь доходит до многостраничного TIFF. Страницы могут быть связаны или нет. Последние 4 байта каждой страницы IFD указывают на смещение другого IFD. Иногда они собираются вместе, чтобы служить «единым» документом, который может быть от сканера. Тем не менее, каждая страница сама по себе представляет собой «одну» страницу TIFF, которая может содержать свои собственные метаданные EXIF, как и одна страница TIFF.