Pixel Art Animation

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.

Open the maker

Sources and method

Last updated 2026-11-06. Drafted with AI assistance and checked against its sources on 2026-11-05.