Split a GIF into frames
An animated GIF is a stack of images, each with its own display time. Open one in this GIF frame extractor and every frame is laid out in order with its number and its delay in milliseconds, so you can see how the animation is timed and save the frames you need. Everything is decoded in your browser; the GIF is not uploaded.
- Choose a GIF or drop it on the box. All frames are extracted straight away.
- Untick any frames you do not want.
- Download single frames from their cards, or the selection as a ZIP. Files are numbered with three digits (
name_frame_001.png) so they stay in order.
The status line shows the frame count, the total running time and how many times the GIF loops. A GIF with 24 frames of 100 ms each runs for 2.4 seconds per loop.
Extract frames from GIF as PNG
PNG is the default because, like GIF, it is lossless and keeps transparency: transparent areas of the GIF stay transparent in the PNG. WebP also keeps transparency at a smaller size. JPG has no transparency, so transparent pixels are filled with white.
The PNG has exactly the colours stored in the GIF. GIFs are limited to 256 colours per frame, so a PNG made from a GIF does not gain any detail; it simply avoids adding compression artefacts on top. If you have the original video the GIF was made from, extract the frames from that with the video frame extractor instead for full colour.
Why some GIF frames look broken (disposal explained)
Many GIFs save space by storing only the part of the picture that changed. Frame 5 might be a small rectangle around a moving ball, and the GIF says what to do with the previous frame before drawing it: keep it, clear the area to the background, or restore what was there before. This instruction is called the frame’s disposal method.
Simple frame splitters save these partial frames as they are stored, which is why their output can show a ball floating on an empty background, or smeared trails. This GIF frame extractor follows the disposal method and gives you each frame as it appears when the GIF plays, at the full size of the animation.
If you do want the stored pieces, for example to rebuild the GIF in an editor, choose Only the part each frame changes (raw). Each file then contains only that frame’s rectangle.
The card under each frame shows the stored delay and the delay browsers actually use. Browsers treat very short delays (below 20 ms) as 100 ms, so a GIF that stores 0 ms or 10 ms plays slower than its numbers suggest.
GIF or video?
Many “GIFs” on websites and messaging apps are really short MP4 or WebM videos, because video files are much smaller. If the file you saved ends in .mp4, .mov or .webm, this page will tell you so; open it with the video frame extractor instead, which reads every frame of a video, or use the tool to extract the last frame from a video if you only need the final image. Animated WebP and APNG files are not supported yet.
Real GIFs are usually small, but a long, large GIF can still hold hundreds of frames. All frames are decoded on your device, so a very long GIF takes longer to lay out on an older phone than on a computer.
Example results
Input: our sample GIF (320×180, 24 frames, 100 ms per frame, 2.4 seconds per loop), made from our own animation.
| Setting | Files | Names |
|---|---|---|
| Full frames, PNG | 24 | sample-bounce_frame_001.png … _024.png |
| Frames 1, 7, 13 and 19 ticked | 4 | sample-bounce_frame_001.png, _007, _013, _019 |



