Skip to content
I Hate Online Tools

Sprite sheet slicer

Slice a sheet into frames (zip).

This runs in your browser. Nothing is uploaded.

About Sprite sheet slicer

Cuts one sprite sheet into an even grid of individual frames and downloads them as a zip, slicing on your own machine so unreleased artwork stays there.

Sheets arrive from asset packs, from other people's exports, from a game you are modifying. What you need are the separate frames — to re-time an animation, to use one icon on its own, to feed a pipeline that expects individual files. Cutting a 4×4 sheet by hand means sixteen crops at exact coordinates, and getting one of them wrong by a pixel is easy and annoying to spot later.

You set columns and rows, both defaulting to 4 and both adjustable from 1 to 32. Frame width is the sheet's width divided by the column count, rounded down; frame height is the same calculation vertically. Each cell is copied straight out of the source at full resolution, encoded as a PNG named for its row and column starting at frame-0-0, and all of them are zipped together into frames.zip.

Rounding down means remainders are discarded from the right and bottom edges. A 1000-pixel-wide sheet cut into three columns gives 333-pixel frames and drops the final pixel column. More importantly, a sheet with a couple of pixels of padding you did not account for will shift every frame slightly, and you will only notice when the animation jitters. Uneven grids, trimmed atlases and JSON-defined frame rectangles are all out of scope — this cuts one regular grid.

How to use Sprite sheet slicer

  1. 1Drop the sprite sheet onto the panel, or click to browse.
  2. 2Set Cols and Rows to match the sheet's actual grid. Both start at 4.
  3. 3Click Slice & download zip. There is no preview stage — the zip arrives straight away.
  4. 4Open frames.zip; the files are named frame-0-0.png upward, row first, then column.

What it won't do

  • Even grids only — no padding, margins, trimmed frames or per-frame rectangles.
  • Remainder pixels on the right and bottom edges are dropped by the rounding.
  • No preview, and grids finer than the image has pixels are refused with an error.

Common questions

How do I work out how many columns and rows my sheet has?

Count one row and one column visually, then sanity-check the arithmetic: the sheet's pixel width divided by your column count should land on a whole number, and the same for height and rows. If it does not divide evenly, the sheet probably has padding or margins, which this tool cannot account for.

Why is there no preview of the sliced frames?

Because the output is many files rather than one image, so there is nothing single to preview. Clicking Slice & download zip cuts every frame, zips them, and starts the download immediately. That single button is the whole operation, which is why this tool has no separate Download step.

What are the extracted frames named?

Each file is frame-{row}-{column}.png, zero-indexed, so the top-left frame is frame-0-0.png and the next one along the first row is frame-0-1.png. Row comes first, column second. One thing to watch: a plain alphabetical sort breaks down past ten columns, because frame-0-10 sorts ahead of frame-0-2. Rename them with padded numbers if your pipeline relies on filename order.

Can it handle sheets with padding between frames?

No. It divides the image into an exact grid with no allowance for margins or gutters, so padded sheets come out with slivers of neighbouring frames along the edges. Crop the outer margin off first if there is one, and accept that inner gutters will need a different tool.

Related tools

Why this one doesn't upload your file

There is no server to upload to. This page is a static file, and the work happens in your browser using the same graphics and WebAssembly code that renders every other site you visit. Your file is read from disk into memory, processed, and handed back as a download. Once the page has loaded you can disconnect from the network entirely and it keeps working. The longer explanation

Install the app