Images & Design
Pack sprites into one sheet or slice a sheet into frames
Upload PNG, WEBP or JPG frames to get one sprite sheet plus a JSON file with each frame's position, or upload a sheet to get the frames back. Slicing keeps every pixel as it is.
or drop them here
What you get from pack mode
Example: a 4-frame walk cycle, cell size 64 px. Slice mode runs the other way and gives you frame-0001.png onward from one sheet.
- 1 · You upload
- walk-1.png
- walk-2.png
- walk-3.png
- walk-4.png
- 2 · sprite-sheet.png
128 × 128 px, 2 columns × 2 rows
- 3 · sprites.json
[ { "name": "source-0001-walk-1.png", "x": 0, "y": 0, "width": 64, "height": 64 }, { "name": "source-0002-walk-2.png", "x": 64, "y": 0, "width": 64, "height": 64 }, { "name": "source-0003-walk-3.png", "x": 0, "y": 64, "width": 64, "height": 64 }, { "name": "source-0004-walk-4.png", "x": 64, "y": 64, "width": 64, "height": 64 } ]
Also in the download: round-trip-proof.json and manifest.json. Choose Phaser or Godot and the same rectangles come in that wrapper.
From frames to a finished sheet in three steps
- 1
Add frames or a sheet
Drop the frames you want packed, or one finished sheet you want cut into frames.
- 2
Choose mode and grid
Pick pack, slice or alpha detection, set the cell size or grid, and pick generic JSON, Phaser or Godot.
- 3
Check and download
Look at the preview and any warnings, then download the sheet or frames with the coordinate JSON, manifest and round-trip proof.
Packing sprite frames into a sheet or slicing one apart
What you upload
You upload PNG, WEBP or JPG images. In pack mode, separate frames go into one sprite sheet. In slice mode, one sheet is cut into frames using the grid columns and rows you enter, up to 64 of each. The sheet width and height must divide exactly by that grid. A stray border row or a leftover pixel is refused rather than giving you frames that sit a pixel off.
What you get back
In pack mode you get sprite-sheet.png and sprites.json with the position and size of each frame. In slice mode you get each frame as its own PNG (frame-0001.png and so on) with the same kind of coordinate file. A manifest.json file records the source files and the output, and round-trip-proof.json confirms that every rectangle lies inside the image. Slicing cuts pixels out unchanged. To check the result, load the coordinate file in your engine and step through a few frames.
Modes and formats you choose
Mode sets pack, slice by grid or detect alpha regions. In pack mode every frame gets a square cell (256 px unless you enter a size from 16 to 2048 px). A frame is fitted into its cell with its aspect ratio kept and centred on transparent padding, so set the cell size to your frame size if you want pixels 1:1. The coordinate file can be generic JSON, Phaser or Godot, and the frame rectangles are the same in each. Alpha detection crops one image to the area that holds non-transparent pixels and records that rectangle.
Questions before you run it
How many frames can I pack on the free plan?
Up to 3 frames per job, 10 MB each, with 3 successful jobs a day with a free account. Slicing takes one file, so a whole sheet can be cut into frames on the free plan. Pro packs up to 100 frames in one job. Free and Pro jobs download the same files.
Can it slice an existing sheet as well as build one?
Yes. Slice mode cuts a sheet into separate frames using the grid columns and rows you give, and pack mode does the reverse.
Why was my slice job rejected?
Slice mode needs the sheet width and height to divide exactly by the grid you entered. A stray border row or an odd leftover pixel is refused rather than producing frames that sit a pixel off.
Which engine formats does the coordinate JSON support?
Generic JSON, Phaser and Godot. The frame rectangles are identical in each, only the wrapper differs.
Are my pixels resampled during packing?
Only if a frame is not the cell size. Each frame is fitted into a square cell with its aspect ratio kept and centred on transparent padding. Set the cell size to your frame size and pixels stay 1:1. Slicing never resamples.
What does alpha region detection do?
It crops one image to the area that holds non-transparent pixels and writes that rectangle to the coordinate file. It finds one region per image, so use slice mode to split a sheet into several frames.