Sprite Sheet Slicer

Loading the sprite sheet slicer...

Turn one sprite sheet into separate, reusable PNG frames without uploading the artwork. Use an exact grid for evenly spaced animation frames and tiles, or auto-detect separated sprites on a transparent or flat-color background. Every suggested slice remains editable, so you can correct a missed edge, split a merged result, remove unwanted regions, rename frames, and check their order before downloading individual PNGs or a ZIP with frames.json coordinates.

How to slice a sprite sheet

  1. 1

    Choose a sprite sheet

    Open a PNG, JPG, or WebP from your device. The image is decoded in your browser and is not uploaded.

  2. 2

    Set the slicing method

    Choose Grid for fixed rows, columns, cell sizes, offsets, and gaps, or Auto-detect for separated artwork on a transparent or sampled background.

  3. 3

    Review and correct the frames

    Inspect the numbered overlay, then include, exclude, add, delete, move, resize, rename, or reorder slices before export.

  4. 4

    Download the result

    Save one frame at a time or download a ZIP containing the selected PNG files and a `frames.json` coordinate manifest.

Choose the slicing method that matches the sheet

A sprite sheet can be a precise matrix of animation frames, a tileset with regular padding, or a loosely packed collection of icons. Those layouts need different forms of detection. The slicer keeps them in one workflow while leaving the final decision with you.

Method Use it when Controls that matter Common correction
Grid by rows and columns You know how many frames cross and down Columns, rows, offset, horizontal gap, vertical gap Adjust an offset or gap when the overlay drifts
Grid by cell size Each frame has a known pixel width and height Cell width, cell height, offset, gaps Keep or remove empty cells without changing frame order
Auto-detect Sprites are separated by transparency or one flat background color Empty-pixel detection: transparency or corner background color Resize a loose box or separate sprites that touch
Manual correction The layout is irregular or detection needs help Add, move, resize, delete, include, exclude Draw the exact missing frame or remove a false match

These controls follow established sprite workflows rather than inventing a new grid model. Unity’s Sprite Editor supports automatic slicing as well as grids by cell size or cell count, with offset, padding, empty-rectangle, and pivot choices. Aseprite’s sprite-sheet importer similarly uses an x/y offset, sprite width and height, padding, and sheet order. This slicer focuses on extraction, so it exports crop coordinates but does not claim to create Unity, Godot, or Aseprite project files.

Auto-detection is a starting point, not a promise

Auto-detection looks for disconnected visible regions. It is quick when sprites have transparent space between them, but no detector can infer every artist’s intended frame boundaries. Two touching characters may appear to be one component; a detached shadow or sparkle may appear as another. Phaser’s extraction guide documents the same connected-pixel limitation: touching sprites are detected together.

Always review the numbered boxes before export. Auto-detection has no tolerance, minimum-size, or merge-distance sliders, so refine the result by hand. If a flat background is being read as artwork, set empty-pixel detection to the corner background color, or turn detection off and slice by grid instead. If the result is too fragmented, delete the stray boxes and draw one box around the whole sprite. If two frames touch, replace the merged suggestion with manual boxes. The original sheet is never changed.

What the ZIP and frames.json contain

PNG is the default output because it preserves exact pixels and transparency. Each selected frame receives a safe, unique filename based on its name or the chosen prefix. The ZIP groups those PNGs with a frames.json manifest. A manifest entry records the frame’s name, order, and source rectangle:

{
  "name": "player-run-03",
  "x": 128,
  "y": 64,
  "width": 32,
  "height": 48
}

Coordinates use the source image’s pixels, measured from its top-left corner. They are useful for scripts and custom pipelines, but the file is deliberately generic, not an engine-native atlas or import file.

Private local processing with bounded recovery

Image decoding, detection, editing, cropping, and ZIP creation happen in your browser. The image bytes and filenames are not sent to the server. To make the multi-step workflow recoverable, the active tab can keep a bounded local working copy and settings for up to two hours. Start over removes the active tab’s project immediately. A separately opened tab has its own isolated copy, which is automatically removed within two hours even if another tab is reset.

For large sheets, close other image-heavy tabs and avoid creating hundreds of empty frames. The slicer reports its size or frame limit instead of silently lowering image quality. Downloads use temporary browser object URLs, which are released after use in line with MDN’s object URL guidance.

Review checklist before export

  • Confirm the reading order matches the animation or tile sequence.
  • Zoom in and check the first, middle, and last frames for one-pixel drift.
  • Exclude empty cells and accidental dust unless their positions are meaningful.
  • Use distinct names and check for duplicates before creating the ZIP.
  • Check transparent edges on a contrasting preview background.
  • Correct boxes with fields or buttons when precision dragging is difficult; the workflow is designed to remain keyboard-operable, following W3C keyboard guidance.

Frequently Asked Questions

Use Grid when frames follow regular rows and columns or have a known cell size. Use Auto-detect when visible sprites are separated by transparent space or a consistent background color. Both methods produce editable boxes, so you can correct the result before exporting.

No. Detection suggests boxes from visible, separated regions; it cannot know the artistic intent of every sheet. Touching sprites may merge, while detached details may become separate boxes. Review the overlay and use the add, resize, delete, include, and exclude controls where needed.

They may be detected as one connected region. No setting can create a boundary that is absent from the pixels, so the reliable fix is to delete or exclude the merged suggestion and draw separate manual boxes around the intended frames.

Yes. Grid mode supports an x/y offset plus separate horizontal and vertical gaps. You can define the grid by rows and columns or by cell width and height, preview the numbered cells, and choose whether empty cells belong in the exported sequence.

You can download a selected frame as a PNG or export all included frames in a ZIP. The ZIP also contains frames.json, a generic manifest with each frame’s safe name, order, and source x/y/width/height rectangle. It is not an engine-specific project file.

No. The browser performs image decoding, detection, corrections, cropping, and ZIP creation locally. A bounded working copy and settings may remain on your device in the active tab for recovery for up to two hours; they are not uploaded as part of the tool workflow.

Start over immediately clears the current tab’s local project. Other tabs are isolated, so a copy opened in another tab is not controlled by the current one; that separate copy expires and is removed automatically within two hours.

No. It uses deterministic grid calculations and visible-region detection, followed by your corrections. It exports PNG frames, a ZIP, and generic JSON coordinates. It does not generate new artwork or promise native Unity, Godot, Phaser, or Aseprite import metadata.

Related Tools

Tool available in other languages