Does a PNG Have EXIF Data? It Can — but Not the Way You Think

Yes — a PNG can carry EXIF data, but only as a dedicated eXIf chunk, and in practice almost no PNG does. We built a PNG from scratch, stamped it with a full EXIF block (15 tags, including a 6-field GPS record), and confirmed the GPS coordinates (31.2233°N, 121.4700°E) survive a read-back — so the format support is real. But PNG's normal metadata is a different system entirely: text chunks (tEXt / zTXt / iTXt), not EXIF. And there is a hard practical consequence for your images: a browser tool that re-encodes the picture through an HTML canvas — which is exactly what our watermark remover does — discards EXIF from a PNG just as it does from a JPEG. So whether or not a PNG can hold EXIF, the copy you get back from an in-browser tool will not.

How we tested it (a real run, not a guess)

We generated a 480×360 image and built one EXIF payload with 15 fields — camera make/model, capture timestamp, and a 6-field GPS record. We then wrote those same EXIF bytes into three formats: a JPEG (EXIF in the APP1 segment), a WebP (EXIF in a RIFF EXIF chunk), and a PNG (EXIF in a hand-built eXIf chunk). Why hand-built? Because the most-used Python EXIF library, piexif, cannot write EXIF into a PNG at all — it raises InvalidImageDataError for PNG and only supports JPEG and WebP. We had to assemble the PNG chunk byte-by-byte. Then we read each file back and decoded the GPS tag.

Result: PNG stores EXIF in an eXIf chunk

After building the file, parsing its chunk structure gave a clean, real answer. The PNG's chunk list is IHDR → eXIf → IDAT → IEND. The eXIf chunk carries a 344-byte TIFF/EXIF payload, and decoding it returned the exact GPS coordinates we wrote (31.2233°N, 121.4700°E). We also compared the rebuilt image pixel-for-pixel against the original with no EXIF: maximum channel difference was 0 — EXIF is pure metadata and touches no pixel. The same payload behaves identically in JPEG and WebP.

ContainerWhere EXIF livesBytes added (480×360 test)GPS survives read-back
PNGeXIf chunk (after IHDR)1374 → 1730 B (+356 B; 344-B payload)Yes — 31.2233°N, 121.4700°E
JPEGAPP1 segment13587 → 13923 B (+336 B; 350-B payload)Yes — same coordinates
WebPRIFF EXIF chunk2218 → 2588 B (+370 B; 344-B payload)Yes — same coordinates

The EXIF payload is 344 bytes in every container; only the per-format wrapper overhead differs. So PNG can hold EXIF, and it holds exactly the same data the other two do.

PNG's real metadata system is text, not EXIF

The more useful answer is what PNG actually uses. We confirmed PNG's built-in metadata path: a PNG happily carries tEXt chunks — simple key/value text such as a Title and Software field — that survive a save/read round-trip. EXIF, by contrast, is a bolt-on: an optional extension chunk registered long after PNG's text system was defined. So when someone says “PNG has no EXIF,” what they usually mean is: PNG has no EXIF by default, and the metadata PNG lives and breathes day-to-day is text, not the camera EXIF block. If you are shipping a PNG and want machine-readable camera data attached, you are fighting the grain.

Why almost no real PNG actually has EXIF

Two reasons. First, the devices that write EXIF — phones and cameras — almost always emit JPEG or HEIC, never PNG. PNG is what you get from screenshots, exports, and graphics tools, none of which stamp GPS. Second, the tooling is weak: the dominant EXIF library for Python, piexif, throws an error on PNG and only handles JPEG and WebP, which tells you how rarely the PNG-plus-EXIF path is exercised in the wild. We had to hand-build the eXIf chunk byte-by-byte just to demonstrate it exists. For practical purposes, if an image has a GPS tag, it is overwhelmingly a JPEG or a HEIC, not a PNG.

What happens to PNG EXIF in a browser tool

This is the part that matters for watermark removal. Our tool — and any in-browser editor — draws your image onto an HTML canvas and exports a fresh file. A canvas has no concept of EXIF; it only knows pixels. We established this earlier by running the tool's own export path: the PNG it produces contains only IHDR / IDAT / IEND (no eXIf chunk) and the JPEG it produces contains no APP1 EXIF segment (see our EXIF-kept-or-not test). So if your source PNG did carry a GPS tag, the watermark-free copy you download will not. That is a privacy plus — but it also means the question “does my PNG still have EXIF after editing?” has a simple answer: no.

If you want to inspect or strip EXIF yourself

FAQ

Is EXIF the same thing as PNG metadata? No. PNG's standard metadata is text chunks (tEXt / zTXt / iTXt). EXIF is an optional eXIf extension chunk that almost no PNG carries.

Will removing a watermark from a PNG keep my GPS tag? No. An in-browser tool re-encodes through a canvas, which discards EXIF from both PNG and JPEG. The clean copy you download has none.

So should I worry about EXIF in a PNG I upload to a web tool? A pure PNG rarely has any. The bigger exposure is a JPEG or HEIC from your phone — and our tool strips that on export regardless, because it never uploads your file in the first place. See Does an AI Watermark Remover Upload Your Image?

Can I add EXIF to a PNG? Technically yes, by writing an eXIf chunk — we did it by hand. Pragmatically, most libraries and cameras will not, so don't rely on it.

Related reading

If you are tracing the metadata question across formats and capture paths, these are the next reads: