Sprite Sheet Analyzer
Auto-slice a sprite sheet into individual frames by detecting connected non-transparent regions, all in your browser. Tune the thresholds, then export the frames and a JSON atlas. Nothing is uploaded.
Drop a sprite sheet here, click to choose, or paste
A transparent background between sprites works best.
How to slice a sprite sheet into frames
- Add a sprite sheet. Drop, click, or paste a single image; a transparent background between sprites works best.
- Under Detection options, set the Alpha threshold (0 to 255) for how opaque a pixel must be to count, and the Min frame size in pixels to ignore stray specks.
- Analyze. The preview outlines every detected frame so you can check the thresholds before exporting.
- Download the cut-out frames as a ZIP and the JSON atlas. If frames merge or split wrong, adjust the values and analyze again.
When to use it
This is the reverse of packing a sheet. When you have a finished sprite sheet but not its atlas (an asset from a pack, an old project, or an export whose coordinates you lost), it recovers each frame and its position so you can re-import or edit the sprites individually.
It works by transparency, so it fits sheets where sprites sit apart on a clear background. Two sprites that touch come out as one frame; raising the min frame size drops noise, and a lower alpha threshold catches faint anti-aliased edges. Tune both against the outlined preview until the frame count matches what you expect.
Frequently asked questions
How does it find the frames?
It scans the sheet for connected regions of non-transparent pixels and treats each as a frame, all in your browser.
Is my sprite sheet uploaded for analysis?
No. The pixels are read from a canvas in your browser; the sheet never leaves the page.
What do the alpha threshold and minimum size options do?
The alpha threshold (0-255) sets how opaque a pixel must be to count as part of a sprite; the minimum size discards detected regions smaller than that many pixels on a side, filtering out stray specks.
What do I get out?
A preview with each detected frame outlined, the frames cut out as individual PNGs in a ZIP, and a JSON file listing each frame’s position and size along with the sheet dimensions.
Why are some frames merged or not detected?
Sprites whose pixels touch are detected as one frame, and a sheet with a solid (opaque) background can’t be separated at all, because detection relies on transparency between sprites.