GIF Frame Extractor
Open an animated GIF and see every frame with how long it shows, then save one frame or all of them as PNG images in a ZIP. Never uploaded.
Drag a file here, paste it, or choose one. Up to 100 MB. It stays on your device.
The GIF is read in this tab and never uploaded.
How is this calculated?
A GIF frame is often only a patch: a rectangle at some position, in its own palette of up to 256 colours, perhaps with one colour marked transparent. What you see is the canvas after that patch is drawn over whatever the previous frame’s disposal left — kept (methods 0 and 1), cleared to transparent (2) or put back as it was before that frame (3). This tool reads the file itself (the blocks, the LZW-compressed pixels, the four-pass row order of interlaced frames) and keeps that canvas frame by frame, so frame n is what a browser shows at frame n. The result was checked pixel for pixel against ImageMagick’s own coalesced frames on GIFs with patches, interlacing and every disposal method. Delays are stored in hundredths of a second; browsers show a delay of 0 or 1 as 0.1 s, and the times on the page follow them.Runs in your browser — nothing you enter leaves this device.
About this tool
What it does
GIF Frame Extractor takes an animated GIF apart. Choose or drop a GIF and the page says its size, how many frames it has, how long it runs and whether it loops — then shows every frame in order, each with its number and how long it stays on screen. Save any one frame as a PNG image, or all of them at once in a ZIP file, numbered so they sort in order. Use it to pull a single still out of a reaction GIF, check the timing of an animation you made, get the frames back to edit them, or count frames for a sprite sheet. Every frame is saved at the GIF’s full size and exactly as a browser shows it — not the small patch many GIFs store for a frame, but the whole picture with what earlier frames left behind. Transparent parts stay transparent in the PNG. Everything happens in this browser tab; the GIF is never uploaded.
How to use it
- Choose or drop an animated GIF.
- Read the line under its name: size, frame count, total time and how it loops.
- Press Save PNG under a frame to save that one frame.
- Or press Save all frames (ZIP) to save every frame, numbered, in one file.
Limits and your data
- Up to 2,000 frames and 16.7 million pixels a frame (about 4096 × 4096) — beyond that a browser tab may run out of memory, so the GIF is refused rather than half read.
- GIFs up to 100 MB. A GIF cut short or with a damaged block is refused; when only a frame’s pixel data is damaged, that frame is drawn up to where the damage begins.
- The background colour a GIF declares is not painted, as browsers do not paint it either: unpainted areas are transparent.
- Saving all frames writes full-size PNGs, so a ZIP of a long, large GIF can be many times the size of the GIF.
- The GIF is read and decoded in this tab, and the PNG images and the ZIP file are made in the tab’s memory and saved to your device. Nothing is uploaded or kept after you leave the page.
Questions
How do I split a GIF into frames?
Choose the GIF, then press Save all frames (ZIP). The ZIP holds one PNG per frame, numbered in playing order.
Why do some frames look different from what other tools give me?
Many tools save each frame’s stored patch on its own, which can be a small rectangle or have holes. This tool saves what the viewer sees: the patch drawn over what earlier frames left behind.
How long does each frame show?
The time under each frame is its delay as a browser plays it. GIFs store delays in hundredths of a second; a delay of 0 or 0.01 s plays as 0.1 s in browsers, so it is shown that way.
Is my GIF uploaded?
No. The GIF is read and the PNGs are made in your browser, on your device.