Metadata Editor

EXIF EditorEXIF ReaderRemove MetadataGuidesGlossaryAbout

PNG metadata: what a PNG file can carry, chunk by chunk

PNG metadata at a glance

Full namePortable Network Graphics
Extensions.png
MIME typeimage/png
EXIFYes (eXIf chunk, registered in 2017)
IPTCNo standard place (ImageMagick raw profile text)
XMPYes (iTXt chunk with the Adobe XMP keyword)
C2PAYes (caBX chunk)
On metadata-editor.comMetadata can be read in the EXIF reader and stripped with the metadata remover. Editing is not available for this format.

PNG metadata is whatever ancillary chunks the writer decided to add, and for most PNG files that is close to nothing: an image header, maybe a gamma value or an ICC profile, a pixel density, then the pixels. So does PNG have EXIF? It can, in an eXIf chunk, but few programs write one unless they are converting from a photo.

How a PNG file is built

After the 8-byte signature (89 50 4E 47 0D 0A 1A 0A) comes a list of chunks. Each is a 4-byte big-endian length, a 4-letter type, the data, and a CRC-32 computed over type and data.

The letter case of the type is a set of flags. Lowercase first letter: ancillary, a decoder may ignore it. Lowercase second: private. Lowercase fourth: safe to copy, meaning an editor that does not understand the chunk may keep it after changing the pixels. eXIf is ancillary, public and safe to copy. The C2PA chunk caBX is private and unsafe to copy, so an editor unaware of C2PA is supposed to drop it once it modifies the image.

Does PNG have EXIF?

Officially since 15 July 2017, when eXIf was added to the PNG extensions document (version 1.5.0). The PNG Third Edition, a W3C Recommendation dated 24 June 2025, moved it into the main specification and places it before the first IDAT. Only one is allowed. Its payload is a bare TIFF structure starting with II*\0 or MM\0*, without the Exif\0\0 prefix JPEG uses. The spec adds that if the image was edited after the Exif was created, the data "should be considered to be of historical value only".

Before that, ImageMagick stored profiles as hex-encoded text chunks named Raw profile type exif, iptc, xmp or 8bim, which ExifTool still reads. ImageMagick 6.9.12 converting a Canon EOS RP JPEG shows both generations at once:

$ exiftool -v1 converted.png | grep '^PNG ' | head -12
PNG IHDR (13 bytes):
PNG iCCP (8522 bytes):
PNG cHRM (32 bytes):
PNG bKGD (6 bytes):
PNG pHYs (9 bytes):
PNG tIME (7 bytes):
PNG zTXt (115 bytes):
PNG tEXt (137 bytes):
PNG zTXt (19999 bytes):
PNG IDAT (16 chunks, total 514462 bytes)
PNG eXIf (16202 bytes):
PNG tEXt (31 bytes):

The three text chunks before IDAT are raw profiles (8bim, iptc, xmp), so the XMP did not use the standard keyword. The eXIf landed after IDAT, and 50 more tEXt chunks follow it, such as exif:FNumber and icc:description, repeating the same values as plain text.

Placement matters. The ExifTool documentation says some Apple and Adobe utilities ignore XMP stored after IDAT, so ExifTool 11.63 and later write text chunks before it. Editing the file above printed Warning: [minor] Text/EXIF chunk(s) found after PNG IDAT (fixed) and moved the eXIf ahead of the image data.

Text chunks and the prompt problem

tEXt is uncompressed Latin-1, zTXt is zlib-compressed Latin-1, iTXt is UTF-8 with an optional language tag and optional compression. The spec predefines keywords like Title, Author, Copyright, Creation Time, Software and Comment, and lists XML:com.adobe.xmp for XMP, written as an uncompressed iTXt. Any other keyword is allowed.

That freedom is where today's most revealing PNG metadata comes from. The AUTOMATIC1111 Stable Diffusion web UI saves its generation settings, prompt included, in a text chunk named parameters, which ExifTool reports as PNG:Parameters. The prompt travels with every copy that is not re-encoded.

Chunks that describe the pixels

pHYs stores pixels per unit with a unit flag of meter or unknown, so 300 dpi appears as 11811 per meter (see resolution and DPI). iCCP holds a profile name plus a zlib-compressed ICC profile. tIME is the last modification time in UTC. cHRM, gAMA, sRGB and the newer cICP describe color rather than authorship.

There is no IPTC chunk. Ask ExifTool to write IPTC to a PNG and it prints Warning: [minor] Creating non-standard IPTC in PNG, then stores it in a Raw profile type iptc zTXt. Put rights and captions in XMP instead, where the IPTC Core fields live anyway (see EXIF vs IPTC vs XMP).

Reading, editing and stripping PNG metadata

Upload a PNG to the EXIF reader to see the supported fields, or to the metadata remover to strip it. PNG editing is not available here, so use ExifTool:

exiftool -XMP-dc:Rights="© 2026 Jane Doe" -EXIF:Artist="Jane Doe" image.png

On a PNG with no metadata, that adds an iTXt XMP chunk and an eXIf chunk, both before IDAT. On the ImageMagick file, exiftool -all= removed the text chunks, eXIf, iCCP, pHYs and tIME, kept cHRM and bKGD, and printed ICC_Profile deleted. Image colors may be affected.

FAQ

Other formats

JPG file format: segments, metadata and what survives an export

How a JPG file stores metadata: Exif and XMP in APP1, ICC and MPF in APP2, IPTC in APP13, C2PA in APP11, and how to edit it without recompressing the image.

WebP metadata: how EXIF and XMP fit into a WebP file

WebP stores EXIF, XMP and ICC in RIFF chunks, but only in the extended format. Why most WebP files carry none, and which encoders and CDNs throw it away.

GIF metadata: what the GIF file format can and cannot hold

GIF has no EXIF and no IPTC. What the GIF file format does hold: comment blocks, XMP and ICC in application extensions, loop counts, and what converters drop.

Guides

Other Metadata Tools