Sprite Sheet Generator
Pack multiple images into a single sprite sheet plus a JSON atlas of frame coordinates, all in your browser. Add sprites in order, set the columns, and download. Nothing is uploaded.
Drop sprites here, click to choose, or paste
Packed in the order listed below.
How to pack a sprite sheet
- Add your sprites in the order you want them packed. Drop, click, or paste them; the list below reflects the packing order.
- Under Sheet options, set the number of Columns and the Gap in pixels between cells, then give the sheet a name.
- Generate the sheet. Sprites fill left to right, then top to bottom, each in a cell sized to the largest sprite.
- Download the PNG, the JSON atlas, or both together as a ZIP.
When to use it
A game or animation engine loads one sprite sheet far faster than dozens of separate image requests, and most 2D frameworks (Phaser, PixiJS, Unity, and the like) read a texture atlas: one PNG plus a JSON map of where each frame sits. This packs both from loose sprite files without a desktop tool.
Add the sprites in their intended frame order, since the JSON records each by its original filename at its real position and size. Raise the column count for a wider, shorter sheet, or lower it for a tall one. Add a gap when neighbouring frames bleed into each other at draw time.
Frequently asked questions
How are the images arranged on the sheet?
In a uniform grid, left to right then top to bottom, in the order you add the files. Every cell is sized to the largest image so frames never overlap, and you control the column count and the gap between cells.
Do my images need to be the same size?
No. Smaller images sit at the top-left of their cell, and the JSON atlas records each frame at its own actual size and position.
What files do I get?
A PNG sprite sheet with a transparent background and a JSON atlas mapping each input filename to its x, y, width, and height. Download them separately or both as a ZIP.
Are my images uploaded to build the sheet?
No. The sheet is composed on a canvas in your browser. Your images are never sent anywhere.
Is there a limit on sheet size?
Yes. Generation fails if the sheet would exceed 16384 px in either dimension, which is around the maximum canvas size browsers support. Use more columns or smaller images to stay under it.