← All guides

How to Split a Sprite Sheet into Individual Sprites

6 min read · Updated October 2026

A sprite sheet packs dozens of frames into one image, but game engines and editors often need each sprite as its own file — or at least its own region. SpritePilot gives you two ways to split a sheet: automatic detection against a transparent or solid background, and exact grid slicing. This guide covers both, including what every setting actually does.

Open Sprite Detection — free, in your browser, no signup.

Pick the right mode first

At the top of the Sprite Detection tool you’ll find two mode buttons. "Alpha / Background" finds sprites automatically by looking for groups of pixels that stand out from a transparent or solid-color background — ideal when sprites are different sizes or scattered irregularly. "Grid Slice" cuts the image into equal cells by columns and rows, with an optional margin and spacing — ideal for uniform sheets like character walk cycles, where every frame is exactly the same size. Both modes take PNG files only, and the tool remembers which mode you used last.

Method 1: automatic detection (Alpha / Background)

  1. Queue your images. Drop one or more PNG sprite sheets into the upload area; other formats are skipped with a note, so convert JPG or WebP to PNG first. Each file appears in a queue list, so you can process a whole folder of sheets in one run. If you have nothing handy, click "No sheet handy? Try a sample".
  2. Tune the Detection Settings. Five settings control the result; each has a slider and a box you can type into, and your values are remembered for next time. "Minimum sprite size" (1–2000, default 100 px²) is the smallest connected piece that counts as a sprite on its own — raise it if dust or stray pixels become sprites. "Merge parts within" (0–16, default 4 px): a smaller piece this close to a sprite becomes part of it, like a detached hand; small pieces that join nothing are left out, and a yellow note says how many. "Padding" (0–32, default 2 px) adds breathing room around each detected sprite. "Alpha threshold" (0–128, default 10): a pixel must be more opaque than this to count as part of a sprite. "Background tolerance" (0–80, default 20) matters on sheets with a solid background: colors this close to the background color count as background.
  3. Choose background removal, if needed. Detection looks at the outer edge of the image to decide what the background is: transparency, or one solid color. It finds sprites on a solid background by itself, but the cut-out sprites keep that background unless you pick a removal mode. "Flood-fill" is fast with hard edges (great for pixel art) and "Fuzzy edges" keeps soft, partly transparent edges for anti-aliased art; both use the Background tolerance and only remove background connected to the outside of each sprite, so a white eye on a white sheet survives. "AI (rembg)" handles complex backgrounds at about 2 seconds per sprite, for up to 64 sprites per sheet. Leave it on "None" for sheets that already have transparency.
  4. Detect and review. Click "Detect Sprites". Each queued file processes in turn, and results appear as a grid of extracted sprites with their sizes, numbered across all files. Click sprites to tick them, then use "Include" or "Exclude" to choose which ones the "ZIP" button (or "Save to Folder", in browsers that support it) downloads. Changed your mind about a setting? Adjust it and click "Re-detect All" — the whole queue reprocesses with the new values.

Note: Privacy note: Alpha / Background mode processes your image on the SpritePilot server, and the upload is deleted automatically within 24 hours. It takes PNGs up to 50 MB and 40 megapixels and returns at most 1,024 sprites per sheet. If you’d rather keep everything on your device, or you’re offline, use Grid Slice — like every other SpritePilot tool, it runs entirely in your browser.

Method 2: exact cuts (Grid Slice)

  1. Upload one sheet. Switch to "Grid Slice" mode and drop in one PNG. A preview appears below the upload area.
  2. Set the grid. Enter "Columns" and "Rows" (1–64 each). If the sheet has an empty border around the whole grid, enter it as "Margin (px)"; if there are gaps between frames, enter them as "Spacing (px)" (0–512 each, default 0). The line below shows each cell’s size and the number of cells. A yellow "left over" warning means the grid doesn’t use the whole image, usually because the margin or spacing is missing or wrong: a 142×74 sheet of 4×2 coin frames reads 35×37 with both at 0, and a clean 32×32 with margin 4 and spacing 2.
  3. Slice. Leave "Skip empty (fully transparent) cells" ticked to drop unused slots, such as the end of a part-filled last row. Click "Slice into N cells": every remaining cell becomes a sprite, in reading order (left to right, top to bottom). Undo and redo buttons sit above the results, with Ctrl+Z and Ctrl+Shift+Z (or Ctrl+Y) as shortcuts, so you can experiment freely; "Download All" saves the cells as numbered PNGs in a ZIP.

Tips

What happens next

Once split, head to Export & Download to rename sprites, reorder them, trim transparent borders, and download everything as individual PNGs in a ZIP or as a re-packed sheet with metadata for Godot, Phaser and the web — for Unity, a grid sheet that its Sprite Editor slices, or the ZIP of separate PNGs.

Go deeper

Related guides