2010-07-14 19 views
5

Y a-t-il un maximum théorique à la quantité de métadonnées (EXIF, etc.) qui peut être incorporée dans un fichier JPEG? Je voudrais allouer un tampon qui est assuré d'être suffisant pour contenir les métadonnées pour n'importe quelle image JPEG sans avoir à l'analyser moi-même.Quelle est la taille maximale des métadonnées JPEG?

Répondre

9

Il n'y a pas de maximum théorique, puisque certains marqueurs APP peuvent être utilisés plusieurs fois (par exemple APP1 est utilisé à la fois pour l'en-tête EXIF ​​et également pour le bloc XMP). En outre, il n'y a rien pour empêcher plusieurs blocs de commentaires.

En pratique, celui qui est le plus commun pour aboutir à un grand en-tête est spécifiquement le marqueur APP2 utilisé pour stocker le profil de couleur ICC pour l'image. Étant donné que certains profils de couleurs complexes peuvent avoir plusieurs mégaoctets, ils seront divisés en plusieurs blocs APP2 (puisque chaque bloc APP a une limite d'adressage de 16 bits).

3

Chaque zone de données APPN a un champ de longueur de 2 octets, donc 65536 contiendrait le plus grand. Si vous vous inquiétez simplement des données EXIF, ce serait un peu moins.
http://www.fileformat.info/format/jpeg/egff.htm Il y a au maximum 16 marqueurs APPN différents dans un seul fichier. Je ne pense pas qu'ils peuvent être répétés, donc 16 * 65K devrait être le maximum théorique.

+0

Merci Edgman. Il semble que certains des marqueurs sont effectivement fixés à des longueurs inférieures à 64K, donc une limite théorique plus faible pourrait être calculée, mais votre calcul approximatif est assez bon pour mes fins. – darrinm

+1

La réponse de Grayson Lang est la bonne. Il n'y a rien pour empêcher plusieurs blocs du même marqueur. –

+0

sur linux, les outils wrjpgcom et rdjpgcom sont extrêmement utiles ... c'est là que j'ai fini par pousser beaucoup de données texte. – phyatt