🍱 Lunchbox Hands

GIF Frame Extractor

Split an animated GIF into individual PNG frames, right in your browser

Drop an animated GIF here or click to upload

Every frame, fully composited

Drop an animated GIF above and it splits into individual PNG frames instantly. Each thumbnail shows the frame number and how long it stays on screen; click one to download that frame as a standalone PNG, or grab everything as a zip with zero-padded names (frame-001.png, frame-002.png, ...) ready for scripts and timelines. Everything runs on your device — the GIF is never uploaded to a server.

Frames come out fully composited. GIFs rarely store complete images per frame: most frames are small patches over the previous one, with disposal rules deciding what gets cleared or restored in between. This tool replays those rules, so every PNG you download is the complete picture you see during playback — not a partial strip.

Handy for grabbing the one perfect frame of a reaction GIF as a still, pulling frames to assemble a sprite sheet, or debugging an animation you exported — the per-frame delay readout makes stray 0ms frames and timing hiccups easy to spot. To go the other direction — reassemble stills into an animation — use the GIF maker. To convert a frame to JPG or WebP afterwards, use the image format converter; to shrink it, the image compressor; and if your source animation is an SVG or you need raster stills from vectors, the SVG to PNG converter.

Frequently asked questions

Why do frames extracted with other tools look broken, but these look right?

GIFs rarely store a complete image per frame — most frames are small patches covering only the pixels that changed, and each carries a disposal method saying what to clear or restore before the next one draws. Tools that dump the raw frame data give you partial strips and ghosting. This extractor replays the disposal rules on a working canvas, so every PNG is the full composited picture you actually see during playback.

What does the delay number under each frame mean?

It is how long that frame stays on screen, in milliseconds. One quirk to know: GIFs with a delay of 0 (or anything up to 10ms) are shown at 100ms by Chrome, Firefox, and Safari, because old encoders wrote 0 to mean “as fast as possible.” The tool normalizes those the same way, so the delays and the per-loop timing match what the GIF really looks like in a browser.

Can I turn the frames back into a GIF after editing them?

Yes — pair this with our GIF Maker tool. Extract the frames here, edit the ones you want, then drop them into the GIF Maker (Images → GIF) to reassemble the animation with your own per-frame delays. The zero-padded filenames from the zip (frame-001.png, frame-002.png, ...) keep everything in order.

Why do the colors look slightly different from my original artwork?

That difference was baked in when the GIF was made: the GIF format allows at most 256 colors per frame, so gradients and photos get quantized and often dithered during GIF encoding. The PNG export here is lossless — each frame is saved exactly as the GIF decodes it, pixel for pixel, with no further color loss.

Get weekly dev tools and tips