Skip to content
AI Sprite Maker

GIF to Sprite Sheet

Unpack any animated GIF into a clean sprite sheet with its real frame timing, ready for your engine.

  • Free
  • Runs locally
  • No sign-up
Drop an animated GIF
Every frame is decoded with its real timing and disposal, so frames that only store changed pixels come out whole.
Choose file
Runs in your browser · nothing is uploaded

Everything runs in your browser. Your files are never uploaded, so it also works offline once the page has loaded.

GIFs often store only the pixels that changed between frames, so a naive frame dump gives you sprites with holes and leftovers from the previous frame. This converter replays each frame with its disposal method, the way a browser does, so every frame of the sheet is whole. It also keeps each frame's own delay, which matters for animations that hold a pose.

How to use the GIF to Sprite Sheet

  1. Drop an animated GIF (or try the sample). Every frame is decoded with its delay and disposal.
  2. Pick the frame range, and use Keep every Nth frame to halve or third a long GIF. The frames you keep absorb the time of the skipped ones, so the speed stays the same.
  3. Click frames in the strip to leave single frames out.
  4. Trim to content crops all frames with one shared box, so the sprite stays in place. Add padding if your engine needs a gap around it.
  5. If the GIF has a solid backdrop instead of transparency, turn on Remove background colour.
  6. Choose original timing or a fixed FPS, then export the sheet, the data file, a GIF or a ZIP of everything.

What you get

  • PNG sprite sheet, transparent, in a grid with auto or fixed columns.
  • Aseprite JSON with per-frame durations from the GIF, plus Phaser/TexturePacker JSON, a Godot 4 .tres SpriteFrames, CSS sprites and Unity slicing settings.
  • Re-encoded GIF after your edits, at 1×–8× scale.
  • ZIP containing all of the above and every frame as a separate PNG.

Which engines it fits

  • Aseprite JSON keeps uneven frame durations. Godot importers like Aseprite Wizard and Unity Aseprite importers read it directly.
  • Godot 4 .tres uses fixed speed with per-frame relative durations, so held frames stay held.
  • Phaser 3: load as an atlas with the hash JSON and build the animation from the frame names listed under animations.

Tips from making games with it

  • Pixel-art GIFs with 255 colours or fewer re-encode losslessly here, since the tool uses the exact colours instead of re-quantizing.
  • Many GIFs found online are pixel art upscaled 2× or 3×. The tool detects this and restores the real 1× pixels, which keeps your sheet small and sharp.
  • GIF delays under 20 ms are played as 100 ms by browsers. The tool does the same, so the preview matches what you saw before.
  • For engines that only take a single FPS, switch Timing to Fixed FPS and check the preview to make sure held poses still read.

Use cases

  • Bringing a GIF from an old project or a pixel-art editor that only exported GIF into a game engine.
  • Turning a GIF made by an AI animation tool into frames you can edit and clean up.
  • Splitting a GIF into numbered PNG frames for touch-up in Aseprite, LibreSprite or Photoshop.
  • Making a CSS sprite animation for a website from an existing GIF.

FAQ

Why do some GIF frames come out with missing pixels in other converters?
GIFs can store a frame as only the region that changed, and say what happens to it afterwards (keep it, clear it, or restore the previous frame). Tools that ignore this disposal method produce broken frames. This one applies it, so each frame is complete.
Does it keep the original frame timing?
Yes. Each frame's delay is read from the GIF and written into the Aseprite JSON and the Godot resource. You can switch to a fixed FPS if your engine needs one.
Can it convert a GIF with a white or coloured background to transparent?
Turn on Remove background colour. It removes the colour found around the frame border. For tricky backgrounds, export and run the sheet through the Sprite Background Remover.
Is there a size or frame limit?
There is no fixed limit. Everything happens in your browser's memory, so very large GIFs (hundreds of frames at high resolution) depend on your device.
Is my GIF uploaded?
No. The GIF is decoded on your device in a background worker. No file leaves your computer.
What about MP4 or WebM clips?
This tool reads GIF files. For video, use the Video to Sprite Sheet tool, which captures every frame of any clip your browser can play and can key out a green screen.
All free tools →