Spritesheets pack multiple images into a single file — common in game development, icon sets, and animation. Splitting them back into individual sprites is a frequent task when working with existing assets.
What is a spritesheet?
A spritesheet (or sprite atlas) is a single image containing multiple smaller images arranged in a grid or packed layout:
- Game sprites: Character animations, tiles, items
- Icon sets: UI icons in a single file
- CSS sprites: Multiple website graphics in one image (reduces HTTP requests)
- Animation frames: Sequential frames of an animation
Grid-based splitting
The most common layout is a uniform grid where every sprite has the same dimensions:
┌────┬────┬────┬────┐
│ 1 │ 2 │ 3 │ 4 │
├────┼────┼────┼────┤
│ 5 │ 6 │ 7 │ 8 │
├────┼────┼────┼────┤
│ 9 │ 10 │ 11 │ 12 │
└────┴────┴────┴────┘ To split a grid spritesheet, you need:
- Number of columns and rows, or
- Sprite width and height in pixels
The tool then slices the image into equal rectangles.
Auto-detection
Some spritesheets don’t use a uniform grid. Auto-detection algorithms find individual sprites by:
- Scanning for transparent or solid-color regions between sprites
- Finding the bounding box of each non-empty region
- Extracting each detected region as a separate image
This works well for packed spritesheets with transparent backgrounds.
Common spritesheet formats
| Source | Typical format | Layout |
|---|---|---|
| RPG Maker | PNG | Uniform grid (specific dimensions per type) |
| Aseprite | PNG + JSON | Packed or grid, with metadata |
| TexturePacker | PNG + JSON/XML | Packed, with coordinate data |
| Game assets (itch.io) | PNG | Usually uniform grid |
| CSS sprites | PNG/SVG | Varied sizes |
Tips for clean extraction
- Check for padding: Some spritesheets have 1-2px gaps between sprites to prevent texture bleeding. Account for this in your grid dimensions
- Transparent backgrounds: Export as PNG to preserve transparency
- Power-of-two sizes: Game engines often prefer sprite dimensions that are powers of 2 (16, 32, 64, 128px)
- Naming convention: Name exported sprites systematically —
walk_01.png,walk_02.png— for easy import into game engines - Check the last row: Many spritesheets have an incomplete last row. Empty cells should be ignored
Selective extraction
Sometimes you don’t need every sprite. A good splitter tool lets you:
- Preview all sprites in the grid
- Select only the ones you need
- Download selected sprites individually or as a ZIP
This saves time when you only need specific frames from a large animation sheet or certain icons from an icon pack.
A browser-based splitter handles all of this without installing any software — upload the spritesheet, set the grid dimensions, pick your sprites, and download.