GIF to frames

Split an animated GIF, WebP, AVIF, or APNG into numbered still images.

Your inputs stay on your deviceFREE · NO SIGN-UP

A small task starts here.

Drop an image here, paste it, or choose from your device.

Up to 30 MB · GIF, animated WebP, AVIF, or APNG · Processed locally
Save frames as
Take every
frame

PNG keeps transparency exactly, and is the safest choice for a logo or a sticker. Every frame is saved, numbered in order. Frames arrive as a single ZIP. Up to 600 frames at a time.

Choose a file and the result appears here automatically.

THE LITTLE DETAILS

GIF to frames, without the extra steps.

Take an animation apart into the frames it is made of, numbered in order and delivered as one ZIP. The frame count and the duration each frame is on screen for are read from the file itself and shown before you download anything, and the frames are drawn on the page so you can see what came out. Every frame is composited, so a GIF that only stores what changed between frames still gives you complete pictures.

How to use this tool

  1. 1Open an animated GIF, WebP, AVIF, or APNG. Its frame count appears straight away.
  2. 2Choose PNG, WebP, or JPEG, and whether to take every frame or every few.
  3. 3Check the frames shown on the page, then download the ZIP.

When GIF to frames is the right tool

  • A reaction GIF has the one frame you actually want to post as a picture, somewhere in the middle.
  • An animated sticker has to be rebuilt somewhere that only takes still images.
  • You need to know the real frame rate of an animation, which means knowing how long each frame is held.
  • A designer sent an animated WebP and the frames have to go back into the editor as layers.
  • An animation looks wrong on one device and you want to see each frame on its own to find out where it breaks.

A GIF frame is usually not a whole picture

To stay small, a GIF stores only the pixels that changed since the frame before, along with a rule for what to do with the previous one. Extractors that read those blocks straight out give you frames with holes, trails, or a single moving shape on an empty background. Decoding composites each frame against what came before it, so every image is the complete picture as it appeared at that moment — which is what you wanted when you asked for the frames.

The timing is part of the animation

Each frame carries how long it stays on screen, and those durations are rarely equal: a held pose at the start and fast frames through the middle are what give an animation its rhythm. That number is shown under each frame in milliseconds, with the total length beside the frame count. Without it you can see what an animation contains but not how it moved, and rebuilding it elsewhere becomes guesswork at a single averaged frame rate.

Which still format to take them as

PNG keeps transparency exactly and is the safe choice for a logo or a sticker, at the cost of size. WebP keeps transparency too and is dramatically smaller, which matters when a three-second animation is two hundred frames. JPEG has no transparency at all, so anything see-through is filled with the colour you pick rather than left to turn black — reasonable for photographic frames, wrong for a cut-out. The frames are shown against a chequerboard so transparency is visible rather than hidden against white.

GOOD TO KNOW

A few quick answers.

Yes. A GIF usually stores only the pixels that changed since the previous frame, which is why hand-rolled extractors produce frames with holes or trails in them. Decoding here composites each frame against the ones before it, so every image you get is the complete picture as it appeared at that moment.

That timing is stored in the file, and it is shown under each frame in milliseconds along with the total length of the animation. It is the number you need to rebuild the animation elsewhere or to work out its real frame rate, and most converters throw it away.

No. The file is decoded in your browser and the ZIP is assembled there too, so nothing is sent anywhere and nothing is stored. The archive is built in the page and handed straight to your downloads.

Frame extraction uses ImageDecoder, part of WebCodecs, which Chrome and Edge have had since version 94 and which Safari and Firefox have not shipped. The page checks before you choose a file and says so plainly instead of accepting the file and failing afterwards. Nothing here falls back to a server, because the file never leaves your browser.

Up to 600 saved frames come back in one run. Above that, use Take every to save every second, fifth, or tenth frame — the file names keep each frame's real position in the animation, so frame 40 is still called 40 rather than being renumbered to 4. That way a sampled set still lines up with the original.

Not with this tool, which reads animated image formats: GIF, animated WebP, AVIF, and APNG. Video files are a different container and a different decoder. Video first frame saves the opening frame of a video, and a full video frame extractor is planned separately.

Back to all tools