How to Convert a GIF to a Sprite Sheet
3 min read · Updated October 2026
Found the perfect animation as a GIF, but your engine wants a sprite sheet? The GIF → Sprite Sheet converter decodes every frame locally in your browser and packs them into a grid, with metadata giving each frame’s position and how long it stays on screen. It reads animated GIFs, APNGs, and animated WebPs.
Open the GIF converter — free, in your browser, no signup.
- Drop in the animation. Drag a GIF, APNG, or animated WebP into the upload area — or click "Try a sample" to test with the bundled bouncing-ball GIF. Decoding starts immediately. Up to 300 frames are converted; a longer animation keeps its first 300, and the page says so.
- Review the frames. A thumbnail strip shows the first 24 frames, with the frame count, each frame’s size in pixels, and the animation’s approximate speed in FPS, worked out from the file’s own frame delays. GIFs that store only the pixels that change between frames come out as complete frames.
- Shape the grid. Set "Columns" — the tool starts with a square-ish grid that fits and shows the sheet’s size live. If the sheet would be wider or taller than 8192 px, "Download Sheet + JSON" is disabled and the warning says which column counts fit; if no column count does, it suggests sending the frames to Export & Download and saving them as separate images with "Download as ZIP".
- Download, or keep working. "Download Sheet + JSON" saves sprite-sheet.png and sprite-sheet.json: the frame size, columns, rows, and suggested FPS, plus every frame’s x/y position and its duration in milliseconds. Or click "Send to Export & Download" to put the frames in your session, replacing what was there, so you can rename them, add animation tags, trim transparency, and export TexturePacker, Godot, Phaser, or Aseprite formats instead.
Tips
- The suggested FPS is the average of the frame delays — right for evenly timed GIFs. If some frames hold longer than others, use the per-frame durations in the JSON; the formats in Export & Download don’t carry them (Aseprite JSON gives every frame 100 ms).
- APNG and animated WebP keep full alpha transparency through the conversion. GIF’s transparency is 1-bit, so edges that looked fine on a dark website may look jagged on a light game background.
- Everything runs locally in your browser — browsers with the WebCodecs ImageDecoder, such as Chrome and Edge, decode with it, and Safari and iPhone use SpritePilot’s own GIF decoder. The file is never uploaded.
Note: GIFs convert in every modern browser, including Safari and on iPhone. Animated PNG and WebP files need the WebCodecs ImageDecoder API, which Chrome and Edge have and Safari doesn’t; without it the tool tells you rather than failing silently.
Go deeper
- GIF or Video to Sprite Sheet Without a Huge File — How frame count and frame size decide a sheet’s memory, measured on real conversions.
- How Fast Should Pixel Art Animate? Choosing a Frame Rate — Why GIF timing rounds to hundredths of a second, and choosing the speed to use in your engine.
- Make Sprite Animations Loop Without a Hitch — A captured GIF often ends where it started; how to spot the doubled frame at the seam and fix it.
Related guides
- How to Convert a Video to a Sprite Sheet
- How to Convert a Sprite Sheet to a GIF
- Sprite Sheet Export Formats Explained