Sprite Sheet Splitter

Split an existing sprite sheet into individual frames. Define rows and columns, preview the grid, and download as a ZIP.

What this tool supports

Slice a uniform sprite sheet into separate PNG frames using rows, columns, spacing, and offsets, then download the frames individually or as a ZIP.

Formats, controls, browser limits, and file privacy
Input
PNG, JPEG, WebP, GIF, and BMP images that your browser can decode. Animated GIFs are treated as a still image here.
Output
Individual PNG frames or a ZIP of the extracted frames, with an animation preview.
Controls
Rows, columns, horizontal/vertical spacing, offsets, output filename prefix, and preview FPS. Check any automatically suggested grid before splitting.
Limits and browser
Uses the browser Canvas API. Designed for uniform grids; it does not import JSON coordinates for irregular, rotated, or tightly packed atlas regions. Large sheets may exceed available memory.
File privacy
Your source files are processed in this browser and are not uploaded for conversion. Site analytics and optional forms use network requests.

Try a downloadable exampleExplore the next steps

Drag & drop your sprite sheet here

Set columns and rows, then split into frames and download as PNG or ZIP.

Or click to browse

PNG, JPEG, WebP, GIF, BMP

How It Works

1

Upload the sprite sheet

Drop in the sheet PNG you want to break apart.

2

Define the frame grid

Set rows, columns, offsets, and margins so the grid lines up exactly with the frames.

3

Download the frames

Export every frame as an individual image in a single ZIP.

Recover four 64 × 64 frames from a grid sheet

The sample sheet is 128 × 128 with no border or spacing. Each quadrant contains a different numbered frame, so you can check both size and extraction order.

A 128 by 128 sample sprite sheet with four distinct numbered frames, ready to split into 64 by 64 PNGs.
Reference layout · 128 × 128 px

Files to follow along

These geometric sample assets are free to use and modify, including in commercial projects. No attribution is required. Sample notes and settings.

Reproduce the result

  1. Download the sample grid PNG and select it in the splitter.
  2. Set columns to 2 and rows to 2. Set both offsets and both spacing/margin values to 0, overriding any automatic suggestion.
  3. Split the sheet and check the four previews. Frame order runs left to right across the first row, then across the second row.
  4. Download the frames as a ZIP. Compare their pixel content with the reference frames ZIP; filenames depend on the prefix selected in the tool.

Expected result

Four PNGs, each 64 × 64. With no offsets or spacing, frame width is 128 ÷ 2 = 64 px and frame height is 128 ÷ 2 = 64 px. Splitting this PNG grid preserves the source pixels.

Follow the same sample through all three tools in our convert, split, and repack walkthrough.

Continue your sprite workflow

  • Edit a frame

    Open an extracted PNG in the Pixel Art Editor to change individual pixels.

  • Repack the frames

    Build a new atlas with different spacing, trimming, or packing settings.

  • Make an animated GIF

    Use your grid sheet and a chosen playback FPS to create a shareable animation.

Frequently Asked Questions

Offsets and margins are adjustable, so grids with padding or a border still slice cleanly — use the preview to confirm alignment before exporting.

Yes. Adjust rows and columns while watching the live preview; when the grid overlays each frame exactly, the settings are right.

No — slicing happens in your browser with the canvas API. Nothing is sent to a server.

Divide the sheet dimensions by the size of one frame — a 512×256 sheet of 64×64 sprites is 8 columns by 4 rows. If frames don't divide evenly, the sheet probably has margins or padding: nudge the offset and margin values until the preview grid snaps onto the frames.

Grid splitting works for uniform-cell sheets. Sheets packed with MaxRects or trimming place frames at irregular positions, so they need their metadata file to split correctly — if you have the JSON, your engine can already address each frame without splitting at all.

Common next steps: hand-edit individual frames in the Pixel Art Editor, re-pack them with different padding or trimming in the atlas packer, or re-time the animation by dropping or duplicating frames before rebuilding the sheet.