¿PNG contiene datos EXIF ​​como JPG?

100

Me preguntaba si PNG contiene datos como los siguientes.

Lo que hice fue convertir el archivo jpg a formato png, y esperaba recuperar la misma información que tenía en el jpg como se muestra a continuación:

Actualmente usando esta biblioteca as3 para leer los datos.

  • IDF0 --- IDF @ [134 - 248] (9 entradas)
    • Orientación (CORTO): 1
    • XResolución (RACIONAL): 72/1
    • YResolución (RACIONAL): 72/1
    • Unidad de resolución (CORTO): 2
    • Software (ASCIIx16): QuickTime 7.6.6
    • Fecha y hora (ASCIIx20): 2011: 10: 02 22:43:37
    • Computadora host (ASCIIx16): Mac OS X 10.6.8
    • Exif IFD (LARGO): 8 34853
    • IFD GPS (LARGO): 248

 

  • EXIF IDF --- IDF @ [8-134] (10 entradas)
    • ExifVersion (UNDEFINEDx4): 0220
    • DateTimeOrigina (ASCIIx20): 2011: 04: 14 17:22:01
    • Comentario del usuario (UNDEFINEDx63): ASCII
    • Flashpix Versión (UNDEFINEDx4): 0100
    • Espacio de color (CORTO): 1
    • PixelXDimension (LARGO): 1022
    • PixelYDimension (LARGO): 486
    • Desconocido (ASCIIx13): Etiqueta de imagen-LOL
    • SceneCaptureType (CORTO): 0

 

  • GPS IDF --- IDF @ [248 - 338] (7 entradas)
    • Índice de interoperabilidad (ASCIIx2): N
    • Versión de interoperabilidad (RATIONALx3) @ 425: 52/1, 1144/100, 0/1
    • Desconocido (ASCIIx2): W
    • Desconocido (RATIONALx3): 1/1, 4392/100, 0/1
    • Desconocido (RACIONAL): 5/1
    • Desconocido (ASCIIx2): T
    • Desconocido (RACIONAL): 3694/117

 

usuario1004413
fuente

Respuestas:

131

Editar: La versión 1.5.0 (julio de 2017) de las extensiones de la especificación PNG 1.2 finalmente agregó un fragmento EXIF. Queda por ver si los codificadores-decodificadores comienzan a admitirlo.

Original: PNG no incluye información EXIF. Sin embargo, permite incrustar " fragmentos " de metadatos dentro de la imagen. Algunos de los fragmentos estandarizados corresponden a algunos atributos EXIF ​​(dimensiones físicas, marca de tiempo). Y también es posible almacenar datos textuales arbitrarios como key=>valuepares o definir nuevos tipos de fragmentos. Entonces, en teoría, podría almacenar cualquier información EXIF ​​... pero, por desgracia, en su propio formato personalizado. Parece que algunos intentos de estandarizar no se han puesto al día.

Leonbloy
fuente
30

Editar: a partir de julio de 2017, PNG admite oficialmente un fragmento eXIf para almacenar metadatos EXIF ​​( especificación ). ExifTool 10.59 y posteriores escriben EXIF ​​en este nuevo fragmento en imágenes PNG.

Original: ImageMagick almacena información EXIF ​​en un fragmento zTXt PNG "Tipo de perfil sin formato APP1" al convertir imágenes JPEG. Este método de almacenar EXIF ​​en imágenes PNG también es compatible con ExifTool (y creo que Exiv2 también), pero no es parte de la especificación PNG o EXIF.

PhilHarvey
fuente
¡Es muy bueno saberlo! ¿Sabes si también lo extrae de TIFF?
Olivier - InterfaSys
4
El grupo PNG ha estado considerando recientemente agregar un nuevo fragmento "eXIf" y / o "zXIf" para almacenar información EXIF. ExifTool 10.43 agregó soporte para fragmentos "exIf" y "zxIf" en apoyo de esto.
PhilHarvey
9

PNG no admite la incrustación de información EXIF. Cuando convierte de JPEG a PNG, la información se pierde.

Percepción
fuente
1
oye, ¿hay alguna documentación que diga eso? porque necesito una prueba para informar a mi supervisor que estoy trabajando en un proyecto que requiere que lea la información EXIF ​​para png. Si ese es el caso, podría mostrárselo y hacerle saber al respecto
user1004413
9
Puede indicarle la especificación , que no tiene una especificación implícita o explícita para la incrustación de datos EXIF, o la entrada de la wiki PNG .
Percepción
5
Esto no es enteramente verdad. Por ejemplo, si usa convert(de ImageMagick) para convertir un JPEG a PNG y luego usa convertpara convertir el PNG de nuevo a JPEG, el nuevo JPEG todavía tendrá los datos EXIF ​​en él.
mofoe
GIMP almacena el "Comentario del usuario" en un PNG como metadatos "EXIF2". Parece que hay un campo para esto en los fragmentos. No estoy seguro de los cómo y por qué exactos. Yo mismo tengo un requisito similar.
VectorVictor
1
En 2012, esta respuesta podría haber sido cierta, pero ¿sigue siendo precisa?
RockPaperLz- Mask it or Casket
7

A partir de julio de 2017 , parece haber un fragmento registrado oficialmente para datos EXIF ​​llamado ... eXIf :

El segmento de datos del fragmento eXIf contiene un perfil Exif en el formato especificado en "4.7.2 Estructura de interoperabilidad de APP1 en datos comprimidos" de [CIPA DC-008-2016] excepto que el marcador JPEG APP1, la longitud y el "Exif El código de identificación "descrito en 4.7.2 (C), es decir," Exif ", NULL y el byte de relleno, no están incluidos.

Tenga en cuenta que esto es tanto A) solo unos pocos meses de antigüedad (al momento de la redacción) como B) una extensión opcional, que no forma parte de la especificación básica. Por lo tanto, la compatibilidad con el fragmento eXIf puede estar limitada en muchas aplicaciones.

8bittree
fuente
2

Querías decir:

  1. ¿Los archivos PNG contienen los elementos de metadatos que enumeró? Respuesta corta: varía.
  2. ¿PNG utiliza el estándar EXIF ​​para almacenar tales metadatos? Respuesta corta: generalmente no.

Generalmente, PNG utiliza varios fragmentos que forman parte del estándar PNG para almacenar metadatos. Para revisar su lista:

  • Orientación: no se aplica a PNG: se corrigió fila por fila comenzando desde la parte superior izquierda.
  • XResolution, YResolution, ResolutionUnit - fragmento de pHYs .
  • Software, HostComputer, otros metadatos textuales: fragmentos de texto, iTXt, zTXt .
  • DateTime: no me queda claro cuál es la fecha / hora de. tIME indica la fecha / hora de la última modificación de los datos de la imagen; otras fechas / horas se pueden almacenar en fragmentos de texto. La hora de creación es en realidad una clave de fragmento de texto definida, pero el formato y cómo se manejan las zonas horarias no están estipulados, lo cual es un mal diseño.
  • ColorSpace, PixelXDimension, PixelYDimension: no estoy seguro de cómo serían estos metadatos. Son fundamentales para la imagen y, como tales, forman parte del bloque del IHDR .
  • No estoy seguro de lo que significan los otros que ha enumerado.

Pero curiosamente, en los últimos años se ha agregado un fragmento eXIf a la lista oficial de fragmentos de extensión (que es esencialmente un apéndice de la especificación PNG). Es de suponer que su objetivo es preservar la información en archivos convertidos de JPEG / TIFF a PNG y no está destinado a ser utilizado en archivos que se crearon como PNG originalmente, pero eso no está claro.

Stewart
fuente
0

Si y no.

Como ya han dicho otras respuestas, PNG no tenía un fragmento EXIF ​​formal hasta que eXIfse agregó en v1.5.0 (2017), y que yo sepa, este fragmento todavía no goza de un amplio soporte.

Pero eso es porque no lo necesita. Muchas piezas de software codifican EXIF ​​en un PNG por convención en un fragmento iTXt(o comprimido zTXt) anotado "Tipo de perfil sin formato APP1" . El eXIffragmento más nuevo tenía la intención de proporcionar una ubicación estandarizada para esto, aunque en mi opinión, el barco ya ha zarpado.

Además, gran parte de los metadatos del estándar EXIF ​​se pueden representar mediante XMP, un mecanismo de transporte de metadatos alternativo y más nuevo que tiene un espacio de nombres EXIF ​​precisamente para este propósito. Los archivos PNG han incluido documentos XMP (incluidos los metadatos EXIF ​​traducidos) en iTXttrozos durante años. Encontrará que muchos procesadores se convierten entre los dos sobre la marcha.

Asteroides con alas
fuente
¿Estos mismos procesadores, sean los que sean, convierten XMP o EXIF ​​a / desde los diversos fragmentos de metadatos PNG estándar?
Stewart
@Stewart Los fragmentos de metadatos PNG estándar son limitados y no pueden representar la amplitud de los datos EXIF ​​o XMP. Es por eso que históricamente hemos codificado EXIF ​​/ XMP en los archivos (en fragmentos de texto).
Asteroides con alas
De acuerdo, reformularé eso: ¿Estos mismos procesadores convierten los elementos de metadatos XMP o EXIF ​​que pueden ser representados por fragmentos de metadatos PNG estándar en fragmentos de metadatos PNG estándar y viceversa?
Stewart
@ Stewart, no lo sé. Lo dudo. Si lo hacen, sería muy limitado. En general, no hay ningún beneficio al hacerlo; es posible que los campos EXIF ​​y XMP no sean estándar, pero son completamente convencionales y se utilizan ampliamente. Así que todo el mundo usa eso. Los metadatos PNG incluyen algunas palabras clave / autor, pero en su mayoría son datos de imagen.
Asteroides con alas