الأدوات · الصور · استخراج الصور من GIF · الأدلة · Why Pull a GIF Apart Into Its Individual Frames
Why Pull a GIF Apart Into Its Individual Frames
A GIF plays as one continuous loop, but underneath that loop is a sequence of individual frames, each one a complete still image shown for a fraction of a second before the next takes over. Most of the time that's all you need - it's an animation, it plays, it's fine. Sometimes, though, the thing you actually want is inside one of those frames, or you need every frame as its own file, and the GIF format itself gives you no way to get at that without decoding it apart.
Who actually needs this
Someone building a sprite sheet or a thumbnail set who has the source art only as a GIF and needs the individual images back out of it. A developer debugging a GIF-based loading animation, checking exactly what each frame looks like frame by frame instead of guessing from watching it play. Someone who has a reaction GIF and wants one specific frame - the exact peak of the expression - as a static image they can use on its own.
Why you can't just screenshot the animation
Screenshotting a playing GIF gets you whatever frame happened to be showing at the moment you pressed the button, at your screen's resolution, with whatever compression your screenshot tool applies. It's not the actual frame data, and you can't reliably land on a specific one that way, let alone get all of them. Decoding the GIF properly gets you the real, full-resolution frame data the file actually contains, every one of them, not just whichever one you got lucky enough to catch.
Why this is more than "just play it slowly"
GIF frames don't each contain a complete image the way you might expect. A frame often only updates part of the picture and leaves the rest exactly as the previous frame left it - a rule called disposal, and it's part of the format's own spec, not an implementation detail. Decoding a GIF correctly means honoring that rule for every frame in sequence, not just grabbing each frame's own small update in isolation. Get it wrong and frames come out with visible garbage or missing regions - correct only by accident, on the frames where nothing needed disposing of.
Where this fits
GIF to frames decodes every frame of an animated GIF, correctly composited according to that same disposal rule, and hands them back as numbered PNGs in a zip - entirely inside the browser, nothing uploaded. The how-to guide covers the actual steps.