Turn a sprite sheet into a GIF
Cut a sprite sheet into its frames, preview the animation, and save it as a GIF you can share or check. It stays on this device.
- Nothing is uploaded
- Works offline after first visit
- Open source
- No watermark. Sheets are capped at 8,192 px a side, and the page says so before it draws.
Turn a sprite sheet into an animated GIF: cut it by columns and rows or by cell size, set the delay and loop, and watch the preview before you save. It is free, needs no account and adds no watermark, and your files are not uploaded: everything runs in your browser on your device. A sheet is capped at 8,192 px a side and about 33 million pixels (half that on phones); give the page a short while after one visit to save itself for offline use, and then it works offline.
Done
Free, no ads. Support StayPut
Open the network tab. Your files never appear in it.
Add files and run the tool to see every request this tab makes.
Your files are processed on this device and never sent to a server. Reload the page to clear everything from memory.
You have a sprite sheet and want to see it move, or send it to someone who just needs to click play. A GIF does that anywhere an image is allowed: a chat, an issue, a store page. This page cuts the sheet into frames and plays them back before you save anything.
A worked example: a 512 × 256 px PNG holds eight 64 × 64 px frames of a walk cycle in two rows of four. Enter 4 columns and 2 rows (or choose Cell size and enter 64 and 64) and the preview starts playing at once. If the feet slide, change the delay (100 ms is ten frames a second) and watch it again. When it looks right, press Make GIF.
Some limits. A GIF frame has at most 256 colours and transparency is on or off, so soft edges turn hard; a sheet with 256 colours or fewer per frame comes out with the same colours. A sheet that has empty cells at the end, from a count that does not fill the last row, can leave them out. Frames cannot be reordered here; they play in reading order, left to right and top to bottom.
How it works
- Drop the sprite sheet (a PNG works best).
- Enter its columns and rows, or choose Cell size and enter the width and height of one frame. Watch the preview and set the delay and loop.
- Press Make GIF and save the file.
In your browser, not on a server
Your browser decodes the GIF one frame at a time, drawing each frame as it plays (earlier frames and disposal rules applied) onto one canvas, or decodes each picture you dropped. The cell size is the first frame’s, the grid is worked out and checked against the size limits before anything is drawn, and the canvas is saved as a PNG; the JSON lists where each frame went. To go back, the sheet is decoded, cut into cells by columns and rows or by cell size, and each cell is written as a GIF frame by gifenc (MIT), which keeps a frame’s own colours when it has 256 or fewer.
Compared with upload-based tools: Online sprite sheet tools upload your frames, and many cap the free size or add a watermark. Here the art stays on your device, there is no watermark, and the page tells you before it draws if a sheet would be too large.
Verify it yourself. Give the page a short while after one visit to save itself for offline use, then turn off Wi-Fi or switch to airplane mode and run the tool again. Or open your browser's developer tools (F12, or Cmd-Option-I on a Mac), pick the Network tab, and watch it while you convert. The panel above does the same count for you.
Questions
How do I know the columns and rows?
Count the frames across and down, or divide the sheet’s width by one frame’s width. If a sheet has gaps between frames, enter the gap size; if the preview jumps or shows a sliver of the next frame, the numbers are off by one.
Why does my GIF have rough edges?
A GIF can show a pixel fully or not at all, with nothing in between, and holds 256 colours per frame. Pixel art with hard edges is unaffected; smooth, soft-edged art shows the difference.
What about empty cells at the end?
Leave out empty cells at the end is on by default, so a sheet of 10 frames in a 4 × 3 grid makes a 10-frame GIF. Untick it to keep every cell.
Can I go the other way?
Yes: GIF to sprite sheet lays a GIF out as a grid, and the Sprite sheet maker does both. To build a GIF from separate pictures use GIF maker, and to save a GIF’s frames as PNGs use Split GIF.
Is the file uploaded anywhere?
No. There is no server in this process. The page is a static file and the work is done by code running inside your browser tab. Give the page a short while after one visit to save itself for offline use; then you can turn off Wi-Fi and it still works.
More image tools
Sprite sheet maker
A GIF or a set of pictures laid out as one PNG grid, with a JSON of every frame’s position and delay, or a sheet cut back into a GIF. It stays on this device.
GIF frame splitter
Pull every frame out of an animated GIF as a PNG, with each frame’s delay. It stays on this device.
Add text to GIF
Write a caption on every frame of an animated GIF and drag it where you want it. Done on this device, and the GIF is not uploaded.
Merge GIFs
Join several animated GIFs end to end, in the order you choose. They are put together on this device, and the GIFs are not uploaded.