2009-09-18 17 views
2

Au format tif, lorsque vous ajoutez des métadonnées EXIF, un nouveau fichier IFD (tif-direcory) est créé et les métadonnées exif sont stockées sous forme de champs. Donc, lors de l'analyse d'un fichier tif avec une seule image et les données exif est facile. Mais vous pouvez obtenir des tiffs multipart, où un tif peut contenir plus d'une image, la question est de savoir si chacune de ces images a des données EXIF? Est-ce que cela crée un nouveau IFD pour chaque métadonnée d'images?Métadonnées tiff et EXIF ​​multipart

Quelle est la disposition de l'IFD alors? La spécification tif ne va pas dans les détails, je sais que lorsqu'un fichier tif image unique a des données EXIF ​​il y a un champ de décalage pour les données EXIF, donc je peux sauter à cet endroit et faire l'analyse moi-même, mais la bibliothèque Java Sanselan me donne un accès facile aux champs IFIF et EXIF, mais si il est possible de plusieurs IFD EXIF ​​(un pour chaque image) alors la bibliothèque ne me dit pas à quelle image appartiennent les données.

Si vous ne pouvez pas avoir plus de 1 EXIF ​​IFD dans un fichier tif en plusieurs parties, alors ce sera trivial! En d'autres termes: Ai-je besoin d'analyser manuellement les données exif? Parce que j'ai seulement besoin de faire cela si vous pouvez attacher des données EXIF ​​à chaque image dans un TIF multipart.

Ou est-ce que quelqu'un connaît une bonne application Linux qui me permet d'ajouter des données EXIF ​​aux fichiers tif pour que je puisse me débrouiller?

Répondre

0

Vous voulez probablement vérifier ExifTool. Cela fonctionne assez bien pour ce que je l'utilise (JPEGs), mais je ne l'ai jamais utilisé avec des fichiers TIFF contenant plusieurs images. Vérifiez également ImageMagick, il a une tonne d'outils utiles.

1

Pour répondre à vos questions:

peuvent chacune de ces images ont des données EXIF? Cela crée-t-il un nouveau IFD pour chaque métadonnée d'images? Quel est l'arrangement de l'IFD alors?

Oui, chacune de ces images peut avoir ses propres données EXIF. Chaque image est liée à son propre IFD et chaque donnée EXIF ​​est un SUB-IFD à l'intérieur de l'image IFD correspondante.

mais la bibliothèque Java Sanselan me donne un accès facile aux EXIF ​​IFD et les champs, mais s'il est possible de multiples de EXIF ​​IFD (un pour chaque image), la bibliothèque ne me dit pas quelle image les données fait parti.

Je ne ai jamais utilisé Sanselan et il est le successeur Apache Imaging donc je suppose qu'il pourrait y avoir deux choses qui se passent ici: d'abord, Sanselan peut par défaut choisir la première page pour un fichier TIFF multipages si vous pouvez réellement insérer EXIF ​​à un multipage TIFF ; ou il peut y avoir un paramètre que vous pouvez définir quelque part avec une méthode comme setWorkingPage(int page) et c'est ce que je fais avec la bibliothèque d'images Java "icafe".

Voici un peu plus d'informations sur ce qui se passe à l'intérieur d'une image TIFF lorsque vous devez ajouter des métadonnées EXIF:

Pour une seule page TIFF, il y a une IFD « principale » qui spécifie tous les informations concernant l'image contenue là. Lorsque des données EXIF ​​sont nécessaires, une étiquette spécifique appelée "EXIF_SUB_IFD" est ajoutée à l'IFD principal. La valeur de cette balise est une adresse de décalage par rapport au début du flux d'images.Maintenant, si nous passons à l'adresse spécifiée par le décalage, nous trouverons un IFD "sub" avec exactement la même structure que le IFD "principal" qui contient toutes les données EXIF.

La structure mentionnée ci-dessus est exactement comme une arborescence de répertoires et d'où le nom IFD. Il y a cependant une différence subtile ici: le IFD principal doit contenir les données d'image réelles mais pas le sous-IFD EXIF. En fait, il existe également un sous-IFD GPS qui est en parallèle avec le sous-IFD EXIF ​​et avec la même structure. Une chose intéressante est que les données pour l'EXIF peuvent être stockées n'importe où dans le flux d'images TIFF (tant que cela ne brise pas d'autres parties du répertoire et des données d'image).

Maintenant arrive au TIFF multipage. Les pages peuvent être liées ou non. Les 4 derniers octets de chaque IFD de page pointent vers le décalage d'un autre IFD. Ils se réunissent parfois pour servir de document «unique» qui pourrait provenir d'un scanner. Cela dit, chaque page est elle-même une page "unique" TIFF qui pourrait contenir ses propres métadonnées EXIF, tout comme une page unique TIFF.

Questions connexes