BYTETOOLS

GIF Frame Extractor

Split an animated GIF into individual PNG frames in your browser, with each frame's delay, disposal method and position listed.

Drop an animated GIF to split it into framesDecoded frame by frame in your browser — nothing is uploaded

Every frame is composited exactly the way a viewer would show it — honouring the disposal method, the frame’s position on the canvas and the transparent colour index — then offered as a PNG with its delay listed.

What is the GIF Frame Extractor?

This tool decodes an animated GIF the way a viewer does. It reads the logical screen descriptor, the global and local colour tables, the graphic control extensions and the LZW-compressed image blocks, then composites each frame onto the canvas honouring its position, its transparent colour index and the disposal method that governs what the previous frame leaves behind.

  • Hand-written GIF87a/GIF89a parser including the LZW decoder — no library involved
  • Frames composited with the correct disposal method, offset and transparent index
  • Interlaced GIFs de-interlaced back into normal row order
  • Per-frame delay in milliseconds plus total duration, average fps and loop count
  • One-click PNG download per frame or the whole sequence at once
  • Frame table exportable as CSV

How to use the GIF Frame Extractor

  1. 1

    Drop an animated GIF onto the upload area.

  2. 2

    Read the tiles for the frame count, canvas size, total duration and average frame rate.

  3. 3

    Scroll the frame grid — each entry shows its delay, its rectangle on the canvas and its disposal method.

  4. 4

    Click PNG on any frame to save it, or Download all frames to save the whole sequence.

  5. 5

    Use Copy frame table (CSV) if you want the timings for a spreadsheet or a re-encoding script.

About the GIF Frame Extractor

This tool decodes an animated GIF the way a viewer does. It reads the logical screen descriptor, the global and local colour tables, the graphic control extensions and the LZW-compressed image blocks, then composites each frame onto the canvas honouring its position, its transparent colour index and the disposal method that governs what the previous frame leaves behind.

That matters because most GIFs do not store whole pictures. To save space, encoders write only the rectangle that changed since the last frame, so pulling raw blocks out of the file gives you fragments. Compositing properly means every PNG you download is a complete, correct frame.

You also get the timing. Each frame's delay is listed in milliseconds, along with the total duration, the average frame rate and the loop count from the Netscape extension, and the whole table can be copied as CSV. Everything is parsed byte by byte in your browser, so the GIF is never uploaded.

Frequently asked questions

How do I extract frames from a GIF?

Drop the GIF onto this page and every frame is decoded and offered as a separate PNG. You can download them one at a time or all at once, and each frame keeps the transparency the original had.

Why do some GIF frames look like fragments in other tools?

GIF encoders usually store only the rectangle that changed since the previous frame. A tool that dumps raw blocks shows those fragments, whereas this one composites each frame onto the full canvas first, so what you download is the complete picture.

What is the disposal method in a GIF?

It tells the viewer what to do with a frame before drawing the next one: leave it, clear it back to the background, or restore what was underneath. This tool applies it while compositing, and lists it for each frame so you can see how the animation was built.

How do I find the frame rate of a GIF?

Each frame carries its own delay, so a GIF does not really have one fixed frame rate. The tool lists every delay in milliseconds and calculates the average frames per second from the total duration, which is the figure you want when re-encoding to video.

Is my GIF uploaded to a server?

No. The file is read locally with the browser File API and decoded in JavaScript on your device, so nothing is transmitted. Even large animations stay entirely on your machine.

Related tools