GIF to sprite sheet, with a JSON atlas
Turn a GIF into a transparent sprite sheet PNG with a JSON atlas, plus measured results from cleaning 20 clips: colors, grid and file size.
- Clips tested
- 20
- Colors after cleaning
- 16 or fewer in all 20
- Pixel grid match after cleaning
- 100% in all 20
- Median file size
- 108 KB before, 26 KB after
- Frame-to-frame change correlation
- Mean 0.97; minimum 0.81
- Square canvas sizes
- 64, 128, 256 or 512 pixels
- Emote preset
- Square 128×128 and 256×256
GIF to sprite sheet in one place
Drop a GIF into the pixel art animation maker. It reads every frame, cleans the pixel grid and palette, and lets you download a transparent PNG sprite sheet, a JSON atlas, the single frames as a ZIP, or all of them together with the palette. Nothing needs an account.
GIF to sprite sheet: what the JSON atlas contains
The atlas lists every frame with its position and size in the sheet and the delay in milliseconds. By default it uses the common hash format that Phaser and Pixi read directly. The sheet is one row by default; you can also choose a square grid, or four or eight frames per row.
What cleaning changed in 20 real clips
20 of 20 cleaned GIFs have at most 16 colors and every pixel matches its own grid cell (100%); the raw files had a median of 221 colors and only 2 of 20 matched a grid at 90%. Method: Each raw GIF was decoded, the size of one pixel was estimated from edge energy across all frames, every grid cell was reduced to its median color, one shared 16-color palette was built for the whole animation, and a new GIF was written. The new file was decoded again and measured: most colors in any frame, and how many pixels equal the main color of their own cell. Motion was compared by correlating the frame-to-frame change before and after (mean 0.97, lowest 0.81).
GIF to sprite sheet presets for Godot, Unity and Aseprite
Pick a game engine under "Export size and game engine" and the sheet layout and the JSON are set for it: Godot gets a single row, Unity a near-square grid, Aseprite its own JSON array format. The everything pack then adds a short README with the import steps for that engine. We have not yet checked every step inside each editor, so treat the README as a starting point.
Square 128 and 256 canvases for emotes and avatars
Chat emoji and avatars usually need a square picture. Choose a square canvas of 64, 128, 256 or 512 pixels and the animation is scaled up by a whole number, centered on a transparent square and padded around it. The GIF, every frame and every cell of the sheet come out exactly that size. If the animation does not fit the size you picked, the next size up is used and the page tells you.
Limits
The grid check is made on the grid the tool found, so it is a self-consistency test, not a comparison with a hand-drawn original. Small details can be smoothed, a slow ripple can lose rings, and a human has not judged all 20 clips. The AI drawing step is separate and is not part of these numbers.
Frequently asked questions
Does the sprite sheet keep transparency?
Yes. Transparent areas of the GIF stay transparent in the PNG, which is saved with a full alpha channel.
Can I cut a sprite sheet picture back into a GIF?
Yes. Drop a PNG sheet, tell the maker how many frames are across and down, and it cuts the frames, cleans them and plays the loop. Then download a GIF.
Is the sheet at game size or enlarged?
By default the sheet is at the real pixel size, one small square per cell, which is what a game engine wants. Choose 2× or 4× if you need it larger.
How do I get a square 128×128 GIF from a GIF that is not square?
Open "Export size and game engine", set Canvas to Square 128×128 and download. The animation is enlarged by a whole number and centered on a transparent square, so pixels stay sharp.
Convert a GIF
Drop your file into the maker.