Spritesheet vs Aseprite
Aseprite is an excellent pixel art editor that also exports sheets, for $19.99 and a desktop install. Its sheet export works on one open document. This one starts from files, wherever they came from.
A dedicated spritesheet tool vs a pixel art editor
Aseprite is where you draw the frames, and its Export Sprite Sheet dialog is better than most people give it credit for. What it will not do is build spritesheets from a folder of PNGs three artists sent you, or from a shipped sheet with no source project. That is the gap this fills, along with the engine formats the dialog does not write.
What Aseprite actually is
Aseprite is a pixel art editor first. It is where you draw the frames: a timeline with layers and cels, onion skinning, tilemap mode, a palette system with colour ramps and shading modes, and a brush engine built specifically for placing individual pixels. Nothing here competes with that, and this page is not going to pretend otherwise.
Its Export Sprite Sheet dialog is genuinely capable. You get layout types (horizontal strip, vertical strip, by rows, by columns, and a packed layout), padding and spacing controls, trim, merge duplicate frames, and a JSON data file in either hash or array form. There is also a command line interface, which is the piece most people miss, and it is the right answer if you want sheet export wired into a build script.
The catch is that the dialog works on one Aseprite document. It exports the frames of the file you have open. That is the correct design for an editor, and it is also the shape of the problem it does not solve.
Where a dedicated packer earns its place
The jobs that fall outside a single .aseprite document are the ones this tool is built for.
The jobs this is built for
- Frames that came from three different artists in three different files.
- A folder of PNGs somebody exported two years ago with no source project.
- An animated GIF a client sent that needs to become a sheet.
- An existing sprite sheet, shipped and in the repo, that needs one frame changed and no .aseprite file exists anywhere.
That last case is the common one, and it is why the splitter matters. Drop a finished sheet in, get the frames back out, edit, repack. Aseprite can import a sheet as frames too, but the round trip through a document you did not author is friction you do not need for a five-minute fix.
The other gap is engine-specific output. Aseprite writes its own JSON, which Phaser and PixiJS read happily because it is close enough to the TexturePacker shape. Godot SpriteFrames resources, Tiled .tsj tilesets, and Sparrow XML for FNF mods are not in that dialog, and hand-converting JSON into a .tres is nobody idea of a good afternoon.
The honest workflow: use both
The setup that works
Draw in Aseprite, pack here. Export your frames from Aseprite as individual PNGs (File, Export, or the CLI with a frame name pattern), drop the folder in, set columns and padding, preview the timing, and export whichever format your engine wants.
If you are already exporting sheets straight out of Aseprite and your engine reads its JSON, keep doing that. Adding a second tool to a pipeline that already works is a cost, not a feature.
Pick Aseprite when
You are drawing the art yourself, you want one tool from first pixel to final sheet, and your engine reads Aseprite JSON or slices a plain grid. The $19.99 buys a genuinely excellent editor and supports its developer.
Pick Spritesheet Generator when
Your frames already exist and came from somewhere else, you need to pull apart a sheet you did not author, or your engine wants a SpriteFrames .tres, a Tiled tileset, or Sparrow XML that the Aseprite dialog does not write.
| Feature | UsUs | Aseprite |
|---|---|---|
| Free to use Aseprite costs $19.99 (or compile from source) | ||
| Works in the browser Aseprite requires a desktop install | ||
| Drag & drop sprite upload Aseprite opens PNGs and imports file sequences as frames | ||
| Auto grid layout | ||
| PNG export | ||
| JSON atlas export | ||
| GIF export | ||
| Engine-specific formats Unity, Godot, Phaser, Tiled | ||
| Built-in pixel art editor Aseprite has a more advanced editor | ||
| Spritesheet splitting Aseprite has Import Sprite Sheet; ours runs on a dropped file with no project | ||
| Animation preview | ||
| Multi-layer support | ||
| Onion skinning | ||
| Advanced drawing tools Tilemap mode, shading, etc. | ||
| No account required | ||
| Command-line export Aseprite has a CLI for build pipelines |
Starts from files, not a document
Spritesheets are the whole job here, so nothing needs a project file open first. Drop frames in from anywhere and pack them.
No install, no license
Open a tab and start packing. A Chromebook, a tablet, or a shared machine you cannot install software on all work.
Import from any editor
Aseprite, Photoshop, Krita, or a folder somebody exported two years ago. If it is a PNG, it packs.
Engine-specific export
A Godot SpriteFrames .tres, a Tiled .tsj, and Sparrow XML, none of which the Aseprite dialog writes. No hand-editing JSON into a .tres.
From Aseprite to a packed sheet
- 1
Export frames or a sheet from Aseprite
Either works. Individual PNGs give the packer the most freedom; an exported sheet plus its JSON can be split back into frames here with the rectangles read from the data file.
- 2
Bring tags across as separate sheets
Aseprite tags name animations inside one file. Export one sheet per tag and the mapping stays clean, since most engine formats expect one animation per data file.
- 3
Set the engine layout
Cell size, padding, and column count for a grid workflow, or tight packing when the loader reads an atlas. Alignment inside the cell handles trimmed frames.
- 4
Export what Aseprite does not write
A Godot SpriteFrames resource, a Tiled tileset, CSS sprites, or Sparrow XML for FNF. Aseprite covers PNG, GIF, and its own JSON, so these are the gaps to fill.
- 5
Do the drawing in Aseprite
It is a better drawing tool and nothing here pretends otherwise. The pixel editor in this tab is for frame level fixes, not for a whole character.
More questions? See the full FAQ.
Pack what you drew
Export your frames from Aseprite, drop the folder here, pick your engine format.