Skip to content

GIF Frame Splitter

Explodes an animated GIF or WebP into numbered frames with their per-frame delays listed.

A GIF frame is not a picture: it is a patch to be pasted onto whatever the previous frames left on the canvas, with its own disposal rule. Extracting frames naively gives you a stack of fragments. This composites each one and hands you the full canvas, numbered, with its delay.

🔒 Runs entirely in your browsergifframessplitanimation

Drop an animated GIF

Each frame comes out as a PNG of the fully composited canvas.

How to use it

  1. Drop the GIF

    Decoding and compositing happen in a worker, so a long animation does not freeze the page.

  2. Read the header figures

    Frame count, canvas size and the loop setting — forever, once, or a specific number — come out of the file rather than being guessed.

  3. Take one frame or the zip

    Each thumbnail downloads as a numbered PNG; the button at the top gives you all of them in a zip with the numbering preserved.

Common questions

Why is every frame the full size when the GIF is mostly still?

Because the frames are composited before you get them. Inside the file most frames are small patches over an unchanged background; on their own those are unusable, so each one is drawn onto the canvas first.

The delays are not all the same.

GIF stores a delay per frame, so an animation can hold on one frame and rush through others. The numbers shown are what the file says, in centiseconds converted to milliseconds — which is why they come in multiples of ten.

Can it split an animated WebP or APNG?

GIF is what this reads. For the others, the frame-by-frame structure is different enough that they need their own decoder, and this page does not pretend otherwise.

Feed it from

Next

These accept what this tool produces, so the result can go straight in.