This page's code did not start.

Opening index.html directly from a folder blocks JavaScript modules, so nothing will happen when you choose a GIF. Serve the folder over http instead:

powershell -ExecutionPolicy Bypass -File serve.ps1

Then open http://localhost:8080/.

GIF Splitter — every frame as its own PNG

Every frame out as its own PNG.

Language: English
View source
Your GIFs are processed in your browser. No processing upload.

The GIF is read, decompressed and drawn by your own browser, and every PNG is encoded in memory on this machine. There is no server on the other end of this page to send an animation to even if anything here wanted to.

Live check: checking…

Offline: checking…

Don't take our word for it: open DevTools, watch the Network tab, and split a GIF. Not one request carries an image, a frame, or a filename. Or unplug from the internet and split one anyway.

1 Choose a GIF

2 How the frames come out

Keep every Take every second or every fifth frame instead of all of them, for a contact sheet or a long recording.

Timing list How long each frame was held, and where it sat. A folder of PNGs cannot carry that on its own.

frame

3 The frames

View as Markdown

How to split a GIF into frames

  1. Choose the GIF. Drop it onto the picker, or select it by hand. It is read straight off your disk by the browser, and the page tells you what it found: the size, the frame count, how long it plays and how many times it repeats.
  2. Decide what each PNG should hold. The frame as it appears is what almost everybody wants: the whole picture at that moment of the animation. Only the pixels that frame stores is the patch the file actually carries, at its own size and in its own place, which is how a GIF stays small and is not what the animation looks like.
  3. Decide what happens to the transparency. PNG keeps it, which is the honest default. Fill it with a colour instead if the frames are headed somewhere that ignores transparency and would otherwise turn it black.
  4. Pick the frames you want. All of them by default. "Keep every second frame" thins a long recording out, and the tick boxes on the grid override it — the numbering never changes, so frame 42 is called frame 42 however few of its neighbours you kept.
  5. Download them. One frame at a time from the grid, or all of them as a single ZIP so there is one save prompt instead of hundreds. The ZIP can carry a frames.txt listing how long each frame was held, which is the one thing a folder of PNGs cannot say on its own.

The longer version

How to split a GIF into frames Get every frame of an animated GIF as a PNG: why some frames are only a small patch of the picture, what happens to the transparency, and how to keep the timing so you can put it back together.

Questions

Is my GIF uploaded anywhere?

No. The file is read, decompressed and drawn by your own browser on your own hardware, and every PNG is encoded here in memory. There is no server side to this tool, and the page's Content-Security-Policy names every address it may contact — none of them belongs to this site. Unplug from the network and it still splits GIFs.

Why does one frame look like a small piece of the picture?

Because that is what the file holds. A GIF is a first picture followed by patches: each later frame stores only the rectangle that changed, and everything else on screen is what the frames before it left there. A talking head against a still wall therefore stores a face per frame rather than a picture per frame, which is the whole reason the format is not enormous.

You are seeing that because "Only the pixels that frame stores" is selected. Switch to "The frame as it appears" and every PNG is the whole picture as the animation looks at that moment.

Does it keep the transparency?

Yes. GIF transparency is a single bit — a pixel is either painted or invisible, with nothing in between — and PNG stores exactly that, so the frames come out with their transparent areas intact. If you would rather have a solid background, set "Transparent areas" to fill with a colour; that is written into the PNG and cannot be undone afterwards.

Why are the frame delays not the numbers I expected?

A GIF stores each delay in hundredths of a second, and browsers have clamped anything under two of them to a tenth of a second since the 1990s — a rule written for the spinning globes of the time and never removed. So a frame whose file says 0.01s is played at 0.10s everywhere. This tool shows the delay as it is really played, and says what the file stores next to it when the two differ.

Can I put the frames back together again?

Yes, with the GIF Maker on this site or with anything else that takes a folder of images. That is what the frames.txt in the ZIP is for: splitting an animation throws away the timing, because a PNG has nowhere to record how long it was held, so the list carries each frame's delay and position out with it.

What formats can the frames be saved in?

PNG, and deliberately only PNG. A GIF frame is at most 256 colours with one bit of transparency; PNG stores that exactly and losslessly, while JPEG would throw the transparency away, invent colours the frame never had, and usually make a larger file out of flat artwork. If you need JPEGs, convert the PNGs afterwards with the Image Resizer.

Is there a limit on how many frames it will read?

The tool uses a 512 MiB planning estimate for source buffers, retained patches, previews and output, and stops before decoded patches exceed 128 Mi pixels. A small stored patch does not make the full source picture cheaper. Unsafe plans are refused before drawing; retained partial results are available only when their buffer plan fits. Sheets and collected PNGs also count. Native browser allocations, JS objects and canvas limits can cost more or refuse earlier, so this is not a measurement of free memory or a guarantee against exhaustion.

Will it open a damaged GIF?

Often. Complete frames are retained from truncated files and missing end markers. Inside a partial frame, missing areas use the first palette colour unless it is marked transparent; the page warns about this fallback. Files with no readable frames and unsafe buffer plans are refused.

Is it free, and do I need an account?

It is free, and there is no account, no sign-in and no trial. There is no watermark on the frames either. The site carries advertising, which is what pays for it; the ads are not given anything about your files.

Does it work offline?

Yes. Load the page once, then disconnect from the internet and it keeps working. That is also the simplest way to prove nothing is being uploaded: a tool that sent your animation away to be processed would stop the moment you unplugged.