Skip to main content

GIF to Sprite Sheet

Server-processed

Lay out every frame of an animated GIF into a single sprite sheet image — choose the grid columns, spacing, frame scale and background, then download as PNG.

Input

Drop a file or browse
One file · GIF

Animated GIF. Every frame is decoded and laid out on the sheet — this uses one credit per run.

Leave blank for an automatic near-square grid.

1 includes every frame. Higher values thin out the animation to keep the sheet smaller.

Resizes every frame before packing. 100% keeps the source GIF's own frame size.

Fills any gap between tiles, and shows through a frame's own transparent pixels.

Output

Uploaded GIF

Result will appear here.

Sprite Sheet

Result will appear here.

Was this helpful?

Guides

Game engines, CSS sprite animations, and texture atlases don't play animated GIFs — they read a single sprite sheet: one flat image with every animation frame arranged in a grid, stepped through by shifting a viewport (a background-position offset in CSS, a frame rectangle in a game engine). This tool decodes an uploaded GIF frame by frame and lays the whole thing out on one downloadable PNG.

How to use it

  1. Upload an animated GIF.
  2. Set the columns for the grid, or leave it blank for an automatic near-square layout.
  3. Optionally thin the animation with Include every Nth frame — handy for a long GIF where every frame isn't needed for a smooth-looking sprite.
  4. Adjust frame scale to shrink or enlarge every tile, spacing to add a gap between them, and pick a background — transparent (default), white, or black.
  5. Click Build Sprite Sheet and download the PNG.

How frames are rendered

A GIF's frames aren't simply stacked images — each one can redraw only part of the canvas and specifies what happens to the pixels underneath it once it's done (leave them, clear them, or restore whatever was there before). This tool replays that per-frame disposal behavior exactly, so every tile in the sheet matches what you'd actually see playing the GIF, not just its own raw, possibly-partial frame data.

Privacy

The uploaded GIF is decoded and composited on our server, then discarded — nothing is stored, and this uses one credit per run.

What if my GIF has hundreds of frames?

Sprite sheets get unwieldy past a few hundred tiles. Use Include every Nth frame to thin the animation down first, or split the GIF with a frame extractor if you only need a subset. The sheet's frame count is also capped at 400 as a sanity limit.

I need to trim or resize the GIF before turning it into a sheet

Run it through the GIF Editor first — resize, crop, or drop frames there, then feed the result into this tool. For an SVG icon sprite sheet instead of an animated GIF's, see the SVG Sprite Sheet Generator.

gif to sprite sheetsprite sheet generatorsprite sheet makergif frames to imagetexture atlasgame dev toolsanimation framescss sprite generatortile sheet

Use it from code

From 3 credits per call

REST API

curl -X POST https://api.iotools.cloud/v1/tool/gif-to-sprite-sheet \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "file": "<file>"
  }'

Swap in your own key from your account. The tool's fields are the body — no wrapper.

Ask an AI agent

Use the IOTools `gif-to-sprite-sheet` tool (GIF to Sprite Sheet) on this input:

YOUR_INPUT_HERE

Paste this at any agent connected to the IOTools MCP server, then add your input.

Love the tools? Lose the ads.

One payment clears every ad from your account, for good. No subscription, no tracking.