All tools

PNG Chunk Inspector

Image

Walk a PNG file's chunk stream directly from its bytes to report every chunk's type, offset, size, and CRC validity, plus the IHDR header and common ancillary chunks like tEXt, pHYs, gAMA, tIME, and acTL

Drop in a PNG file and see its entire chunk stream laid out at once: every chunk's type, byte offset, size, and whether its stored CRC-32 actually matches the data it covers, plus the decoded IHDR header and any tEXt, pHYs, gAMA, tIME, or acTL chunks it carries. It is useful for debugging a PNG that a browser or image library is quietly rejecting, auditing what metadata a design tool embedded before you ship an asset, or confirming an APNG animation chunk made it into the file you exported. It reads chunk headers directly from the bytes with no pixel decoding, and it lists zTXt/iTXt text chunks without decompressing them, so it never needs a zlib dependency to run in a browser.

pngimagemetadatachunkscrcbinary

How to use PNG Chunk Inspector

  • 1.Drop a .png file in, or click to browse, to see its full chunk table.
  • 2.Check the CRC column for any chunk your library or browser might be silently rejecting as corrupt.
  • 3.Look at the summary tags for embedded text, gamma, physical DPI, last-modified time, or APNG animation.

Frequently asked questions

Does this decode the actual image pixels?
No, it only reads the chunk length, type, and CRC bytes plus a handful of ancillary chunk payloads like IHDR and tEXt. No pixel data is decoded, so a corrupted IDAT stream can still report valid CRCs if its own bytes are intact.
Why doesn't it show the text inside a zTXt or iTXt chunk?
Those chunks compress their text with zlib. To keep behavior identical across the browser tool, REST API, and every SDK, none of them decompress it, they just list the chunk and its keyword.
What does a CRC mismatch actually mean?
Each chunk stores a CRC-32 over its own type and data bytes, and this tool recomputes that checksum and compares it. A mismatch almost always means the file was corrupted or truncated somewhere between encoding and your copy, not a bug in whatever wrote it.
Does it work on animated PNGs (APNG)?
It detects an acTL chunk and flags the file as animated, but it doesn't walk the fcTL/fdAT frame chunks individually, it treats the whole file as one PNG chunk stream.

Use via API, SDK, or MCP

cURL# Free: 1,000 req/day · Pro: 10,000 req/day
curl -X POST https://api.utilix.tech/v1/tools/png-chunk-inspector \
  -H "Authorization: Bearer utx_live_..." \
  -F "file=@image.png"

Get an API key from your dashboard · Full API docs →