Le PNG contient-il des données EXIF ​​comme JPG?

100

Je me demandais si PNG contient des données comme les suivantes?

Ce que j'ai fait a été de convertir le fichier jpg au format png, et je m'attendais à récupérer les mêmes informations que j'avais sur le jpg comme ci-dessous:

Utilisant actuellement cette bibliothèque as3 pour lire les données.

  • IDF0 --- IDF @ [134 - 248] (9 entrées)
    • Orientation (COURT): 1
    • Résolution X (RATIONNELLE): 72/1
    • Résolution Y (RATIONNELLE): 72/1
    • ResolutionUnit (SHORT): 2
    • Logiciel (ASCIIx16): QuickTime 7.6.6
    • DateHeure (ASCIIx20): 2011: 10: 02 22:43:37
    • Ordinateur hôte (ASCIIx16): Mac OS X 10.6.8
    • Exif IFD (LONG): 8 34853
    • GPS IFD (LONG): 248

 

  • EXIF IDF --- IDF @ [8 - 134] (10 entrées)
    • ExifVersion (UNDEFINEDx4): 0220
    • DateTimeOrigina (ASCIIx20): 2011: 04: 14 17:22:01
    • UserComment (UNDEFINEDx63): ASCII
    • FlashpixVersion (UNDEFINEDx4): 0100
    • ColorSpace (COURT): 1
    • PixelXDimension (LONG): 1022
    • PixelYDimension (LONG): 486
    • Inconnu (ASCIIx13): Image Tag-LOL
    • SceneCaptureType (COURT): 0

 

  • GPS IDF --- IDF @ [248 - 338] (7 entrées)
    • Indice d'interopérabilité (ASCIIx2): N
    • Version d'interopérabilité (RATIONALx3) @ 425: 52/1, 1144/100, 0/1
    • Inconnu (ASCIIx2): W
    • Inconnu (RATIONALx3): 1/1, 4392/100, 0/1
    • Inconnu (RATIONAL): 5/1
    • Inconnu (ASCIIx2): T
    • Inconnu (RATIONAL): 3694/117

 

user1004413
la source

Réponses:

131

Edit: La version 1.5.0 (juillet 2017) des extensions de la spécification PNG 1.2 a finalement ajouté un bloc EXIF. Reste à voir si les encodeurs-décodeurs commencent à le supporter.

Original: le PNG n'intègre pas les informations EXIF. Il permet, cependant, d'incorporer des " morceaux " de métadonnées à l'intérieur de l'image. Certains des blocs standardisés correspondent à quelques attributs EXIF ​​(dimensions physiques, horodatage). Et il est également possible de stocker des données textuelles arbitraires sous forme de key=>valuepaires ou de définir de nouveaux types de blocs. Ainsi, vous pourriez en théorie stocker toutes les informations EXIF ​​... mais, hélas, dans votre propre format personnalisé. Certaines tentatives de normalisation n'ont pas rattrapé leur retard, semble-t-il.

Leonbloy
la source
30

Edit: Depuis juillet 2017, PNG prend officiellement en charge un bloc eXIf pour stocker les métadonnées EXIF ​​( spécification ). ExifTool 10.59 et versions ultérieures écrivent EXIF ​​sur ce nouveau bloc dans les images PNG.

Original: ImageMagick stocke les informations EXIF ​​dans un bloc zTXt PNG "Type de profil brut APP1" lors de la conversion à partir d'images JPEG. Cette méthode de stockage EXIF ​​dans des images PNG est également prise en charge par ExifTool (et je crois qu'Exiv2 aussi), mais elle ne fait pas partie de la spécification PNG ou EXIF.

PhilHarvey
la source
C'est très bon à savoir! Savez-vous s'il l'extrait également du TIFF?
Olivier - interfaSys
4
Le groupe PNG a récemment envisagé d'ajouter un nouveau bloc "eXIf" et / ou "zXIf" pour stocker les informations EXIF. ExifTool 10.43 a ajouté la prise en charge des blocs «exIf» et «zxIf» à l'appui de cela.
PhilHarvey
9

PNG ne prend pas en charge l'incorporation d'informations EXIF. Lorsque vous convertissez de JPEG en PNG, les informations sont perdues.

la perception
la source
1
hey y a-t-il une documentation qui dit cela? car j'ai besoin d'une preuve pour que mon superviseur sache que je travaille sur un projet qui m'oblige à lire les informations EXIF ​​pour png. Si tel est le cas, je pourrais lui montrer et lui faire savoir
user1004413
9
Vous pouvez le diriger vers la spécification , qui n'a pas de spécification implicite ou explicite pour l'incorporation de données EXIF, ou vers l'entrée wiki PNG .
Perception
5
Ce n'est pas entièrement vrai. Par exemple, si vous utilisez convert(à partir d'ImageMagick) pour convertir un JPEG en PNG, puis que vous l'utilisez convertpour reconvertir le PNG en JPEG, le nouveau JPEG contiendra toujours les données EXIF.
mofoe
GIMP stocke les "Commentaires de l'utilisateur" dans un PNG en tant que métadonnées "EXIF2". Il semble qu'il y ait un champ pour cela dans les morceaux. Le comment et le pourquoi exacts dont je ne suis pas sûr. J'ai moi-même une exigence similaire.
VectorVictor
1
En 2012, cette réponse aurait pu être vraie, mais est-elle toujours exacte?
RockPaperLz- Mask it or Casket
8

Depuis juillet 2017 , il semble y avoir un bloc officiellement enregistré pour les données EXIF ​​appelé ... eXIf :

Le segment de données du bloc eXIf contient un profil Exif au format spécifié dans "4.7.2 Structure d'interopérabilité de APP1 dans les données compressées" de [CIPA DC-008-2016] sauf que le marqueur JPEG APP1, la longueur et le "Exif Le code d'identification "décrit en 4.7.2 (C), c'est-à-dire" Exif ", NULL et l'octet de remplissage, ne sont pas inclus.

Notez que c'est à la fois A) vieux de quelques mois seulement (au moment de la rédaction) et B) une extension facultative, ne faisant pas partie de la spécification de base. Par conséquent, la prise en charge du bloc eXIf peut être limitée dans de nombreuses applications.

8bittree
la source
2

Vouliez-vous dire:

  1. Les fichiers PNG contiennent-ils les éléments de métadonnées que vous avez répertoriés? Réponse courte: cela varie.
  2. PNG utilise-t-il la norme EXIF ​​pour stocker ces métadonnées? Réponse courte: généralement non.

En général, PNG utilise divers morceaux qui font partie de la norme PNG pour le stockage des métadonnées. Pour parcourir votre liste:

  • Orientation - Non applicable au PNG - fixé comme ligne par ligne à partir du coin supérieur gauche.
  • XResolution, YResolution, ResolutionUnit - bloc pHYs .
  • Logiciels, HostComputer, autres métadonnées textuelles - fragments tEXt, iTXt, zTXt .
  • DateTime - Je ne sais pas exactement de quoi il s'agit. tIME indique la date / heure de la dernière modification des données d'image; d'autres dates / heures peuvent être stockées dans des blocs de texte. L'heure de création est en fait une clé de bloc de texte définie, mais le format et la façon dont les fuseaux horaires sont gérés ne sont pas stipulés, ce qui est une mauvaise conception.
  • ColorSpace, PixelXDimension, PixelYDimension - je ne sais pas comment il s'agirait de métadonnées. Ils sont fondamentaux pour l'image et, en tant que tels, font partie du bloc IHDR .
  • Je ne sais pas ce que signifient les autres que vous avez énumérés.

Mais curieusement, ces dernières années, un bloc eXIf a été ajouté à la liste officielle des blocs d'extension (qui est essentiellement un addendum à la spécification PNG). Vraisemblablement, il vise à préserver les informations des fichiers convertis de JPEG / TIFF en PNG et n'est pas destiné à être utilisé dans des fichiers créés à l'origine au format PNG, mais ce n'est pas clair.

Stewart
la source
1

Oui et non.

Comme d'autres réponses l'ont déjà indiqué, PNG n'avait pas de bloc EXIF ​​formel jusqu'à ce qu'il eXIfsoit ajouté dans la v1.5.0 (2017), et à ma connaissance, ce bloc ne bénéficie toujours pas d'un large support.

Mais c'est parce qu'il n'en a pas besoin. De nombreux logiciels encodent EXIF ​​au format PNG par convention dans un bloc iTXt(ou compressé zTXt) noté "Raw profile type APP1" . Le eXIfmorceau le plus récent était destiné à fournir un emplacement standardisé pour cela, bien qu'à mon avis ce navire ait navigué maintenant.

De plus, une grande partie des métadonnées de la norme EXIF ​​peut être représentée par XMP, un mécanisme de transport de métadonnées alternatif et plus récent qui a un espace de noms EXIF ​​précisément à cette fin. Les fichiers PNG ont inclus des documents XMP (y compris des métadonnées EXIF ​​traduites) en iTXtmorceaux pendant des années. Vous constaterez que de nombreux processeurs convertissent les deux à la volée.

Astéroïdes avec des ailes
la source
Ces mêmes processeurs, quels qu'ils soient, convertissent-ils XMP ou EXIF ​​vers / à partir des différents blocs de métadonnées PNG standard?
Stewart
@Stewart Les blocs de métadonnées PNG standard sont limités et ne peuvent pas représenter l'étendue des données EXIF ​​ou XMP. C'est pourquoi nous avons historiquement encodé EXIF ​​/ XMP dans les fichiers (en blocs de texte).
Asteroids With Wings
OK, je vais reformuler cela: ces mêmes processeurs convertissent-ils les éléments de métadonnées XMP ou EXIF ​​qui peuvent être représentés par des morceaux de métadonnées PNG standard en morceaux de métadonnées PNG standard, et vice versa?
Stewart
@Stewart je ne sais pas. J'en doute. S'ils le font, ce serait très limité. Dans l'ensemble, il n'y a vraiment aucun avantage à le faire; les champs EXIF ​​et XMP ne sont peut-être pas standard, mais ils sont complètement conventionnels et largement utilisés. Alors tout le monde utilise juste ça. Les métadonnées PNG incluent des mots-clés / auteurs, mais ce sont principalement des données d'image.
Asteroids With Wings