Skip to content

GIF frame extractor

Pull every frame out of an animated GIF as a numbered PNG, with its real delay.

Drop your file here

Processed securely and deleted within the hour.

Up to 60 MB · free · no signup
    Useful on a long animation where you only want a sample.

    Frames come out whole, not as fragments

    This is the part naive extractors get wrong, and it is worth explaining because the symptom is baffling. A GIF does not store every frame in full. To save space it stores only the rectangle that changed since the previous frame, along with a disposal method saying what to do with what was there before — leave it, restore the background, or restore the previous state.

    Read those stored frames directly and you get exactly what is in the file: a first frame that looks right, followed by a series of partial images with transparent holes where nothing moved. Every extractor that produces "broken" frames is doing precisely that.

    Here each frame is composited according to its disposal method before it is saved, so what you get is what you would see at that moment of playback.

    The delays come with them

    A GIF stores a delay per frame, not a single frame rate, so an animation can hold on one frame for two seconds and then run six in a tenth. Each extracted file is named with its own delay — frame-0007-080ms.png — which means you can reconstruct the exact timing later, or see at a glance where an animation pauses.

    The summary also tells you whether the delays are uniform or vary, which is the quickest way to understand how an animation was built.

    PNG or JPEG

    PNG is the default and usually right: lossless, so no artefacts are added to something that has already been through a 256-colour palette, and it keeps transparency. JPEG is smaller and worth it only when you have a great many frames and none of them are transparent — a JPEG cannot store transparency, so those areas are filled with white.

    Sampling a long animation

    Taking every second, fifth or tenth frame is useful when you want to see what happens in a long recording without opening three hundred files, or when you are pulling a contact sheet out of a clip. The numbering keeps the original frame indices so you always know where you are.

    What to do with the frames

    Edit one and rebuild with the GIF maker. Pull a single frame out as a still. Or use extraction as a diagnostic: if an animation looks wrong, seeing the frames laid out usually tells you immediately whether the problem is a bad frame or bad timing.

    01

    Common questions

    Why do frames from other tools have holes in them?

    Because a GIF stores only the changed part of each frame. Reading them raw gives partial images. Here each frame is composited first, so you get the full picture.

    What do the numbers in the filenames mean?

    The frame index and that frame\u2019s own delay in milliseconds — frame-0007-080ms.png held for 80 ms. GIFs store a delay per frame rather than one frame rate.

    How many frames can it extract?

    Up to a thousand. Beyond that you almost certainly want to sample with the "every Nth frame" option instead.

    Should I choose PNG or JPEG?

    PNG unless you have a lot of frames and no transparency. The GIF has already been through a 256-colour palette; JPEG would add its own artefacts on top.

    Can I rebuild the GIF afterwards?

    Yes — edit the frames and use the GIF maker. The delays in the filenames tell you what frame rate to use.

    Does it work on animated WebP or APNG?

    This one is for GIF. Convert to GIF first if you need frames out of another animated format.