Overview
Introduction
This tool answers the basic question of whether a PNG file is structurally valid and, if it's animated, gives you its key facts at a glance without a full decode.
It's a fast first check to run before feeding a file into any of this category's other APNG tools.
What Is APNG Checker?
A structural PNG/APNG validator that walks the file's chunk stream, verifying each chunk's length, type, and CRC-32 checksum against what's actually stored in the file.
If it finds an acTL chunk, it also reports the declared frame count, loop count, canvas dimensions, and the sum of every frame's delay as the total duration of one playback cycle.
How APNG Checker Works
Starting right after the 8-byte PNG signature, the tool reads each chunk's 4-byte length and 4-byte type, computes the CRC-32 over that chunk's type-and-data bytes, and compares it against the 4-byte checksum stored immediately after.
It tracks whether IHDR and IEND were seen, collects width/height from IHDR, and — only when an acTL chunk is present — reads every fcTL chunk's declared delay to build the frame/loop/timing summary.
When To Use APNG Checker
Use it to quickly confirm a file you received (or one this category's Creator, Reverser, or Speed Changer tool just produced) is structurally sound before relying on it.
It's also useful for distinguishing a genuinely animated PNG from a plain one when the file extension alone doesn't tell you.
Often used alongside APNG Frames Extractor, APNG Player and APNG Creator.
Features
Advantages
- Very fast even on large animations, since it never decompresses pixel data.
- Catches real structural problems (bad checksums, missing required chunks, mismatched frame counts) that a naive 'does it open in a browser' check would miss.
- Runs entirely client-side; the file is never uploaded anywhere.
Limitations
- Doesn't catch corruption inside a chunk's own compressed (zlib) payload, since that would require fully decoding it.
- Doesn't validate palette-indexed (color type 3) PNGs any differently than other types, since chunk-level checks don't depend on color type.
Examples
Best Practices & Notes
Best Practices
- Run this check first on any APNG from an untrusted or unknown source before processing it further.
- If issues are reported, re-export or re-download the file rather than trying to salvage a structurally broken one.
Developer Notes
The CRC-32 table, chunk walk, and issue collection are all pure, synchronous functions over a Uint8Array, so the entire checker is unit-testable without any DOM or async dependency; the component's only job is reading the uploaded File's bytes and formatting the result object into a readable report.
APNG Checker Use Cases
- Verifying a downloaded or received APNG isn't corrupted before using it
- Confirming a file this category's other tools generated is structurally valid
- Quickly telling animated PNGs apart from plain ones in a batch of files
Common Mistakes
- Assuming a file that opens fine in one viewer has no structural issues — some viewers tolerate CRC mismatches that stricter decoders reject.
- Expecting this check to catch a corrupted animation frame's actual pixel data, which requires a full decode instead.
Tips
- If the checker reports a frame-count mismatch, the file was likely edited by a tool that updated acTL without adding/removing the matching fcTL chunks.
- Pair this with the APNG Frames Extractor when you need to confirm the pixel data itself, not just the structure, is intact.