Splits an animated GIF into its individual frames and downloads them as a ZIP of PNG images. Each frame is fully composited (transparency and disposal handled), so it looks exactly like the GIF at that moment. Nothing is uploaded.

frames

Click any frame to save just that one PNG.

Drop a GIF here

or click to choose · or paste (Ctrl/Cmd + V)

processed in your browser · never uploaded

Drop or click to replace

Break an animated GIF into separate PNG images, one per frame. Dropping an animated GIF onto an <img> or canvas only gives you the first frame, which isn't enough when you want a specific frame from the middle, or every frame exported as source material. This tool parses the GIF89a data directly in your browser — handling LZW decompression, color palettes, transparent colors, interlacing, and disposal methods (0/1/2/3) — and reconstructs each frame as a complete image composited onto the full logical screen. That means even partial-update frames mid-loop come out exactly as they appeared on screen at that instant. After loading, every frame is shown as a thumbnail along with the frame count and dimensions. Click any thumbnail to save just that one frame as a PNG, or press "Download all (ZIP)" to export every frame as zero-padded, numbered PNGs (e.g. name-001.png) bundled into a single ZIP. The numbering is zero-padded to the total count, so the files stay in frame order even when sorted by name. Your GIF is never uploaded, stored, or sent anywhere — every step runs locally on your device.

How to use

  1. Drop a GIF, click to choose, or paste it.
  2. Every frame appears as a thumbnail, with the frame count and pixel size.
  3. Click a thumbnail to save just that frame as a PNG.
  4. Press "Download all (ZIP)" to export every frame as numbered PNGs. Your GIF is never sent.

FAQ

Is my GIF uploaded to a server?

No. The extraction runs entirely in your browser (JavaScript and Canvas). Your GIF is never uploaded, stored, or sent anywhere — it stays on your device.

Are middle frames extracted correctly?

Yes. Partial-update frames, disposal methods, and transparent colors are all composited internally, so each frame is the complete image exactly as it appeared on screen at that moment.

Can I save a single frame only?

Yes. Click any thumbnail in the list to download just that frame as a PNG. Use "Download all (ZIP)" when you need every frame.

How are the files named?

Each PNG is the original filename plus a number (e.g. photo-001.png, photo-002.png …). The number is zero-padded to the total frame count so the files stay in frame order when sorted by name.

Is the output PNG, and is transparency kept?

The output is PNG, and the GIF's transparent areas are preserved as a transparent PNG. The checkerboard behind the thumbnails is just there to make transparency visible.

Does it work with GIFs that have lots of frames?

Yes. Every frame is included in the ZIP. Only the on-screen thumbnail list is capped at a sensible number to stay fast, showing the rest as "+N more" (they're all still in the ZIP).