GIF Splitter
Take an animated GIF apart into a numbered set of PNG stills, one per frame.
What this tool does
GIF Splitter reads the file with a GIF decoder written for this page — LZW compression, interlaced rows, local colour tables, transparent indices and the frame disposal rules — and writes the frames you ask for as PNG images. Decoding, compositing and PNG encoding all happen in this browser tab, so the animation is not transmitted anywhere and a tab that has already loaded keeps working with the network switched off.
Export what you see (frames composited) is on by default, and it decides what a frame even means. Most GIFs are optimised: after the first one, each frame stores only the rectangle that changed, at its own offset, leaving the rest of the picture to whatever was already on screen. Ticked, every PNG is the full canvas as a viewer would show it at that instant, with disposal applied, and all the files share the GIF's dimensions. Unticked, each PNG is the stored patch alone — often a small partial rectangle, transparent wherever that frame contributed nothing — which is what you want when you are examining how the file was built rather than reproducing what it looks like.
Two numbers decide how many files come out. Export every Nth frame samples the sequence, from 1 for a complete set up to 50, and Maximum frames to export caps the set at that many PNGs, at 200 by default and up to 2000. Sampling does not shorten the work: a frame in an optimised GIF only makes sense stacked on the ones before it, so every frame is decoded and composited in order regardless, and the settings only choose which of them get encoded. Names follow the source, numbered by position in the original animation and zero-padded to the width of the total, so walk-frame-007.png is the seventh frame of walk.gif whether or not the sixth was exported.
The edges are worth knowing before you start. PNG is the only output — no format choice, no resizing, no cropping — and PNG has no delay field, so a set exported here is a pile of stills rather than something that plays. Only GIF is read: an APNG or an animated WebP is refused at the header, with the signature it found quoted back instead of GIF87a or GIF89a. Decoding stops at 2000 frames or 300 million frame pixels across the file, whichever comes first, and a file past either ceiling is refused outright, naming the number of frames it had reached rather than handing back a partial set. A GIF cut short mid-download decodes as far as its data goes, and every pixel it never reached is left at palette index 0 — the first colour in that frame's table, or nothing at all when that index is the transparent one.
How to use it
- Add an animated GIF. One GIF is taken apart per run. Add several and each is decoded separately and produces its own numbered set. A single-frame GIF is accepted and returns one PNG.
- Decide whether to sample. Export every Nth frame runs from 1 to 50. Leave it at 1 for the complete sequence, or raise it to thin a long animation down to a strip you can actually look through.
- Set the ceiling on files. Maximum frames to export is a stop rather than a spacing: exporting ends once that many PNGs have been written, whatever remains of the animation.
- Choose composited or raw frames. Leave Export what you see ticked for full-canvas stills. Untick it to get each frame's own stored rectangle, at its own size and offset.
- Run it, then save the set. The summary gives the frame count, the canvas size and the animation's length in seconds, and the badges beside it add the loop setting and the GIF version. Add several GIFs and every PNG is kept, but those figures describe the last file decoded. Each PNG saves on its own, or the whole set downloads as one ZIP.
Processing & privacy
Runs on your device. Your file is processed directly in this browser.
Common use cases
Fixing one frame of an animation
Split the GIF, correct the frame that is wrong in an image editor, then rebuild the loop with GIF Maker. That tool applies one delay to every frame, so an animation with uneven timing will not come back exactly as it went in.
Finding the still you actually want
A reaction GIF usually contains one good picture. Browsing a folder of PNGs beats scrubbing a looping animation to catch a single moment by hand.
Checking how a GIF was assembled
With compositing switched off the export shows the stored patches, so you can see how much of the canvas each frame really touches — which is what governs the file size.
Recovering artwork from an old file
Sprite strips, banners and forum avatars often survive only as GIFs. Frame PNGs hand back editable stills without another round of colour quantisation.
Questions
Is my GIF uploaded?
Can I get the gif frames as JPG or WebP?
Why are some frames tiny or mostly transparent?
How many frames will it handle?
Do the PNGs keep the timing?
How is this different from Extract Frames?
Will it open an APNG or an animated WebP?
Related tools
- Video to GIF — Turn a short clip into an animated GIF.
- QR Code Generator — Create a QR code for a link, text, Wi-Fi or vCard.
- GIF Maker — Build an animated GIF from images or a clip.
- GIF Compressor — Reduce GIF file size by trimming frames and colours.
- GIF to MP4 — Convert a GIF to a much smaller MP4 video.
- GIF Resizer — Resize an animated GIF without losing the animation.