Practical guide
Inspect PNG text chunks, duplicate keywords and decoded values
PNG text has both an outer chunk and an inner stored value. Use the same four-field file in the chunk inspector and text reader to connect its exact byte ranges with duplicate keywords, Unicode and a compressed comment.
18 October 2026 · Check AI Free
Keep the container inventory and text reading together
Download original.png or use Try synthetic PNG sample in the chunk inspector. It is a generated 1 × 1 PNG with nine chunks and four text occurrences. The chunk inventory records type, offset, data length, full length, position and CRC; it does not display the private stored text. Open the same file in the PNG text reader to decode those values.
The W3C PNG Recommendation distinguishes uncompressed Latin-1 tEXt, compressed Latin-1 zTXt and UTF-8 iTXt. Compression and encoding are different properties: this example's iTXt is uncompressed, while its zTXt is compressed. A duplicate keyword remains a separate chunk.
- Download the original four-text PNG — Project-authored 1 × 1 PNG, 748 bytes, nine chunks and four stored text occurrences. Includes a private ancillary chunk and an explicitly unsigned synthetic credential store. PNG structure fixture v1.
- W3C PNG Third Edition, 24 June 2025 — Fixed Recommendation: chunk layout, text encodings, ordering, CRC and animation structures. Our bounded tools implement the operations described here, not every conformance requirement.
Locate the four text occurrences
Step 1
Inspect the complete chunk sequence
Open the PNG chunk inspector and click Try synthetic PNG sample, or choose original.png. Expect 748 bytes, nine structure units, declared dimensions 1 × 1, status valid and zero diagnostics. Text chunks are chunk-4, chunk-5, chunk-6 and chunk-8; all nine stored CRCs match.
Step 2
Read the same downloaded PNG as text
Choose original.png in the PNG metadata reader. Expand the stored fields rather than replacing this input with that reader's different built-in sample. Expect two Author occurrences, one Description and one Comment. The Comment is marked after image data.
Step 3
Keep each duplicate separate
The first Author value is =1+1 and the second is Synthetic second author. They are plain stored text here; no expression is executed. Copy field and Download text operate on the selected occurrence. If you export general metadata as CSV, spreadsheet formula protection deliberately prefixes special values; JSON preserves the exact raw string.
Match values with their actual chunks
Data length counts the chunk payload, including keyword and encoding headers. It is not the same as the number of displayed characters. Each full PNG chunk adds 12 bytes for length, type and CRC. Save Download structure JSON if you need this positional inventory; the report omits input filenames and stored text values.
| Chunk / range | Encoding and stored value | What the observation tells you |
|---|---|---|
| chunk-4 tEXt · byte 513 · 11 data bytes | Author: =1+1 | First occurrence, before IDAT |
| chunk-5 tEXt · byte 536 · 30 data bytes | Author: Synthetic second author | Second occurrence, preserved separately |
| chunk-6 iTXt · byte 578 · 69 data bytes | Description: Synthetic café / 相機 A "quoted", multiline value. | Uncompressed UTF-8; newline, quotation marks and comma remain |
| chunk-8 zTXt · byte 682 · 42 data bytes | Comment: Synthetic compressed comment | Zlib-decoded Latin-1 text after IDAT |
Do not turn a failed text decode into an empty result
The structure inspector accepts up to 20 MiB and 4096 chunks. The all-text reader and editor have narrower PNG text limits: 10 MiB input, 32 fields, 256 KiB per field and 1 MiB total decoded text. A compressed field can hit its decoded limit even when its stored bytes are small.
If the browser cannot decompress text, that capability is unsupported. A corrupted stream or failed CRC is a failure, not an absent Comment. The editor reads text fields individually: an unmodified unsupported field can remain unknown and be copied verbatim, while replacing one requires an explicit choice. Do not delete or overwrite an unknown field merely to make the result look empty.
Use empty.png for a true missing-text control. The reader finds no embedded text there. That is a statement about the defined file, not a way to recover parameters that were never stored. The unknown aaAa chunk and unsigned caBX store in original.png also show why a four-text inventory is not an inventory of all metadata or a credential check.
- Download the PNG without metadata chunks — A defined copy containing IHDR, the same IDAT and IEND. It is a missing-text control, not another independent photograph.
- Inspect fields individually before editing — Chunk IDs keep duplicate and unreadable fields distinct.
- Read a supported credential container separately — The synthetic store is unsigned; the reader does not verify signatures.
Sources and reproducible inputs
- Download the original four-text PNG — Project-authored 1 × 1 PNG, 748 bytes, nine chunks and four stored text occurrences. Includes a private ancillary chunk and an explicitly unsigned synthetic credential store. PNG structure fixture v1.
- Download the PNG without metadata chunks — A defined copy containing IHDR, the same IDAT and IEND. It is a missing-text control, not another independent photograph.
- W3C PNG Third Edition, 24 June 2025 — Fixed Recommendation: chunk layout, text encodings, ordering, CRC and animation structures. Our bounded tools implement the operations described here, not every conformance requirement.
Continue with your file
- Locate text before and after IDAT — Compare two defined placements of the same compressed Comment.
- Edit one occurrence and preserve IDAT — Stage a Unicode replacement and re-read the verified download.
- Choose a text-safe handoff — Exact JSON differs deliberately from spreadsheet-neutralized CSV.