Extract Frames from a GIF
Drop in an animated GIF to step through its frames. Save the one you want, or split the whole GIF into numbered images in a ZIP.
How to use it#
- Drop an animated GIF onto the preview area, or click it to choose one.
- Find a frame with the slider or type its number. The line above says which frame it is and when it appears in the animation.
- Choose PNG or JPG, then download this frame, or download all frames as a ZIP.
Save one frame, or split the whole GIF#
To save a frame from a GIF, such as a reaction face or the one moment of a screen recording that shows the error, scrub to it and press Download this frame. It can be the first frame, the last, or any one between. To split the GIF into frames completely, Download all frames writes every frame as its own file in one ZIP, an image sequence of the kind a video editor or a sprite sheet tool wants.
The files are numbered from 001, as in cat-frame-001.png, so they sort in playing order in any folder. Frame numbers count from 1, the way an editor counts them, and the line above the slider gives the moment each frame appears: the first is at 0.00 s, and each one after starts when the one before it has had its time on screen.
Frames come out whole, not as patches#
An animated GIF saves space by storing most frames as a patch: only the rectangle that changed, often with see-through pixels, plus an instruction for what happens to that patch before the next frame. Take those patches out one by one and you get a first frame followed by a stack of fragments.
This tool rebuilds each frame the way a browser shows it, honouring every frame's offset, its transparency, and whether its patch is kept, cleared, or undone afterwards. The frame you download is the picture that was on screen at that moment.
PNG or JPG for the frames#
Turning a GIF into PNG frames keeps every pixel exactly, transparent areas included, and a GIF's flat colours compress well in PNG. It is the right choice for editing, for a sprite sheet, or for anything with a transparent background.
JPG gives smaller files for frames that came from video, and every upload form accepts it, but it has no transparency, so see-through areas are filled white. The quality slider sets how much detail it keeps, for a single frame and for the ZIP alike.
Frequently asked questions#
How many frames can it handle?
#
Hundreds. A 300 frame GIF at 800 by 600 took about two seconds to read on a laptop, and moving between its frames after that is close to instant. The reading happens in the background, so the page stays responsive while it works.
How do I find how many frames a GIF has, and its frame rate?
#
Drop it in, and the figures beside the preview give its size, how many frames it holds, how long one play lasts, and its frames per second, such as 300 frames, 12.00 s long, and 25 fps. When the frames last different times, the rate is their average. Set that rate when a video editor imports the frames as an image sequence, and the clip runs as long as the GIF did.
Why does a frame show for 100 ms when the GIF asks for less?
#
A GIF can ask for a delay as short as 10 ms, or none at all. Browsers do not play frames that fast: a frame asking for 10 ms or less is shown for 100 ms. The times on this page follow the same rule, so they match what you see when the GIF plays.
Can I split several GIFs at once?
#
One GIF is open at a time, so the slider always belongs to one animation. If you drop several, the first opens and the page says so. Drop the next one when you are done.
What happens with a GIF that is not animated?
#
A still GIF has one frame, so the frame controls grey out and the page says so. You can still save it as a PNG or a JPG, which is all GIF to PNG and GIF to JPG need to do for a still.
Does it work on a phone?
#
Yes, in the browser on an iPhone or an Android phone, with the same slider and frame number box. On an iPhone, a saved frame or ZIP goes to Downloads in the Files app, where a tap on the ZIP opens it into a folder of frames.
Are the frames uploaded anywhere?
#
No. Your browser reads the GIF and writes every frame on your own device, including the ZIP. Nothing is sent to a server.