Metadatos en archivos PNG: ¿Qué podemos guardar y qué realmente se lee?

¿Qué valores se pueden agregar a una imagen PNG en forma de metadatos? ¿Y cómo?

Depende un poco de qué quieras lograr con esos metadatos, y de quién los va a leer después. El PNG es más flexible de lo que parece, aunque no tan «rico» como JPEG con EXIF.

Una ilustración técnica mostrando un icono de archivo PNG rodeado por etiquetas flotantes que representan los diferentes tipos de metadatos.
Esquema de los chunks de texto nativos disponibles en el formato PNG.

En un PNG se pueden agregar metadatos principalmente a través de los chunks de texto nativos del formato. El estándar define varios tipos, como tEXt, que permite pares clave/valor en texto plano (ASCII) para cosas como Author o Software; zTXt, una versión comprimida; y iTXt, el más moderno y útil, que soporta UTF-8, acentos, emojis y texto largo.

Además de estos chunks nativos, el formato permite incluir metadatos XMP (XML) dentro de un chunk iTXt especial. Esto abre la puerta a esquemas estándar como Dublin Core o Adobe. También existe la posibilidad de incrustar EXIF «prestado» como un bloque binario, aunque su soporte es irregular y lo usaría solo si sé exactamente quién va a consumir la imagen.

El cómo es donde empieza lo divertido. Puedes usar herramientas desde línea de comandos como ImageMagick o exiftool para escribir directamente en los metadatos del archivo. En Python, puedes utilizar la librería Pillow junto con PngImagePlugin para añadir información antes de guardar el archivo.

¿Hay etiquetas «nativas» estandarizadas?

Aquí viene la respuesta corta y honesta: muy pocas… y ni siquiera garantizadas. PNG es deliberadamente minimalista y bastante indiferente a los metadatos. Sí existen etiquetas como Title, Author o Description que vienen recomendadas por el estándar ISO/IEC 15948, pero el estándar no obliga a las aplicaciones a mostrarlas ni a respetarlas.

Un collage visual comparando archivos de imagen, mostrando cómo los formatos como el JPEG soportan metadatos ricos mientras el PNG permanece simple.
La realidad de la compatibilidad: el PNG es minimalista y no garantiza que los metadatos sean leídos por todas las aplicaciones.

En la práctica real, ninguna aplicación está obligada a interpretarlas semánticamente. Muchas solo preservan los chunks al re-guardar, otras ni siquiera los muestran en la interfaz de usuario, y algunas incluso los borran para «limpieza». Incluso las claves recomendadas carecen de tipado, longitud garantizada o encoding estricto.

Si tu pregunta es si hay algo equivalente a EXIF que cualquier visor PNG vaya a leer, la respuesta sincera es: no. El formato prioriza la integridad de la imagen y la simplicidad por encima de los metadatos ricos o interoperables.

Conclusión práctica: Si necesitas máxima compatibilidad humana, usa Title, Description y Author en iTXt. Si buscas interoperabilidad semántica real, considera XMP, aunque asumiendo que muchos lo ignorarán. Y si prefieres que nadie lo note, recurre al texto personalizado.