Initializing... drag & drop files here
Supports: APNG, PNG
Animated PNG keeps full 24-bit colour and per-pixel alpha, and it pays for that in bytes — a two-second loop can easily outweigh a minute of video. This tool shrinks an APNG while keeping it a playable APNG: re-encoding the PNG stream behind every frame and, when you ask for it, scaling the canvas down. Files upload over an encrypted connection, are processed on our servers, and are deleted automatically after a few hours — no sign-up, no watermark.
.apng and .png input, and you can queue several files under one set of settings.APNG is an ordinary PNG plus three chunks — acTL (animation control), fcTL (frame control) and fdAT (frame data) — and it stopped being an unofficial extension when the W3C published the PNG Specification (Third Edition) as a Recommendation on 24 June 2025. A frame need not cover the whole canvas: each fcTL carries an x/y offset, width, height, dispose method and blend method, so an encoder can store just the rectangle that changed and composite it over what came before.
What APNG never does is predict one frame from another the way a video codec does — there are no motion vectors and no inter-frame residuals. Every frame's pixels run through the same lossless DEFLATE compression a static PNG uses, and full-colour RGBA costs four bytes per pixel before that compression starts. That arithmetic is why the two things that dominate an APNG's size are the number of frames and the pixel area of each one, and why the canvas controls on this page move the number further than anything else when a loop is already long.
| Setting | What it changes | Size impact | What you give up |
|---|---|---|---|
| Target file size (%) | Asks the encoder to land at a percentage of the original, starting at 80 | Direct — you name the number | Per-frame fidelity, as far as is needed to hit the number |
| Specific file size | The same request as an absolute figure in bytes, kilobytes or megabytes | Direct | As above, and a very low target may not be reachable |
| Auto Scale | Lets a size target be met by reducing pixel dimensions, not just re-encoding | Large, when it engages | The output no longer matches the source dimensions |
| Image Quality (%) | Manual per-frame fidelity instead of a size target | Moderate to large | Fine detail first, then visible artefacts |
| Image resolution | Scales every frame, by percentage, preset, or explicit width and height | Roughly with area — half the width is about a quarter of the pixels | Permanent detail loss |
| Property | APNG | GIF | Animated WebP |
|---|---|---|---|
| Colour per frame | 24-bit RGB (16.7 million) | 256-colour palette | 24-bit RGB |
| Transparency | 8-bit alpha (per-pixel) | 1-bit on/off | 8-bit alpha |
| Frame coding | Lossless DEFLATE, changed-rectangle frames | LZW over a palette | VP8 (lossy) or VP8L (lossless), changed-rectangle frames |
| Native lossy mode | No — the frame data itself is lossless | Palette-only by nature | Yes |
| Photographic loop size | Largest of the three | Middle, with visible banding | Usually smallest |
| Browser support | ~96% (Chrome 59+, Firefox 3+, Safari 8+, Edge 79+, Opera 46+) | Effectively universal | ~96% (Chrome, Firefox, Edge, Safari 14+) |
| Standard | PNG Third Edition, W3C Recommendation, 24 June 2025 | GIF89a, 1989 | Google's WebP container spec (RIFF/ANIM/ANMF) |
| If unsupported | First frame shows as a static PNG | — | Nothing renders |
No. Every control on this page acts on pixels rather than on sequencing: the size targets, Image Quality (%) and Image resolution all leave the frame count and the per-frame delays exactly as they were. There is no framerate control on this page, so the loop you get back plays at the timing you sent — just lighter, and possibly smaller on screen if you scaled the canvas or left Auto Scale on.
Because APNG's per-frame data is lossless. GIF throws away colour up front — it can only hold 256 colours per frame — and animated WebP can encode frames with the lossy VP8 codec, so both start from a smaller pile of data. APNG stores true 24-bit colour with 8-bit alpha and compresses it with DEFLATE, which is efficient on flat regions and poor on photographic noise. Its only inter-frame saving is storing changed rectangles rather than whole canvases; there is no motion prediction to fall back on.
It depends almost entirely on what the frames contain. Flat UI animation, icons and line art have large uniform regions that DEFLATE handles extremely well, so they respond strongly to a size target. A photographic or film-grain loop barely moves, because noise is close to incompressible losslessly — for those, the honest lever is fewer pixels rather than a lower percentage, which is exactly what Auto Scale and Image resolution give you.
Yes. The alpha channel is preserved rather than flattened onto a background, so soft edges and drop shadows stay soft instead of turning into GIF-style jagged cut-outs. That is the main reason to compress an APNG rather than convert it to GIF, whose transparency is a single on/off bit per pixel. Scaling the canvas resamples the alpha channel along with the colour channels, so semi-transparent edges stay smooth at the new size.
APNG has a floor: the frame data is lossless, so past a point the only lever left is fewer pixels. When you hit that floor, change format. APNG to WebP usually shrinks far more, because animated WebP can encode frames with lossy VP8 while keeping 8-bit alpha, and it runs in Chrome, Firefox, Edge and Safari 14+. APNG to MP4 is smaller still for long loops, at the cost of transparency and autoplay behaviour. APNG to GIF only makes sense when a target refuses anything else.
Yes — the input list accepts .png alongside .apng, and the same size and resolution controls apply to a single-frame image. If that is your main job, compress PNG is the page built around it. The practical difference is that a single frame gives the encoder far less to work with, so a still image usually has less headroom than a long loop with repeated content.
Yes. Compression rewrites pixel data and PNG chunks; it does not change the format, so anything that played the original plays the result. APNG is supported by roughly 96% of browsers worldwide — Chrome 59+, Firefox 3+, Safari 8+, Edge 79+ and Opera 46+ — and where it is not understood the file degrades gracefully to its first frame shown as an ordinary static PNG. Most desktop image editors do the same, which is why an APNG opened in an editor often looks like a single still.
It travels over an encrypted (TLS) connection, is processed on our servers, and is deleted automatically a few hours later. There is no sign-up, no watermark, and nothing is shared or made public. The only practical ceiling on a very large APNG is upload size and time — a long, high-resolution loop is a big file going up, and that transfer is usually longer than the compression itself.