LiveMutaSprite is live. Now on Gumroad and itch.io — buy and download today.
Handbook/ Transform operations/ Asset SliceX (free grid cutting)

Asset SliceX (free grid cutting)

Cut sprite sheets, textures and UI atlases along freely placed lines into up to 25 cells — each cell as its own PNG.

Summary

Asset SliceX cuts an asset along freely placed horizontal and vertical cut lines into a rectangular grid of up to 25 cells and exports each cell as its own PNG file. Unlike Asset Slice (fixed four edge insets), here any number of lines can be positioned freely — pure, pixel-exact cropping with no scaling.

When to use it

  • You have a sprite sheet, a texture page or a UI atlas and want to break it into many individual pieces.
  • The number of cuts is not limited to four edges — you need a free grid.
  • You only want to cut, not reassemble or scale.

When not Asset SliceX:

  • You want to scale to a target size with fixed corners → Asset Slice (9-slice).
  • You want to cut out / coarsen → chroma-key, or UnDetail/Pixelize.

How it works

SliceX works with a strict grid: every horizontal line cuts across the full image width, every vertical line from top to bottom (no guillotine cuts). From n vertical and m horizontal lines you get (n+1) × (m+1) cells.

In the preview, you drag new lines out of the ruler strips (left for horizontal, top for vertical lines) into the image; a ghost line follows the cursor live. Lines can be moved right on the line and deleted by dragging them out past the image edge. A status line shows "M × N = K cells" live.

Settings

Slider Effect
Segment size (label) Default on — shows the width/height of the adjacent segment right on the line (e.g. 76px).
Position (label) Default off — shows the absolute position from the image edge (e.g. x=76), smaller, dimmed text.
Clear all lines Resets the grid.
Output Target folder, subfolder, file suffix (default _slicex).

CLI / Automation

Headless, the same free cutting — invocation and positional arguments in the CLI overview. You pick this operation with --operation slice-grid.

Relevant flags: --slice-grid-xs (comma-separated x positions of the vertical cuts, e.g. "70,140,210") and --slice-grid-ys (y positions of the horizontal cuts, e.g. "65,130"); empty = no cuts on that axis. The UI's live line dragging is replaced here by these numeric positions.

Example:

clean_sprite_chromakey.py sheet.png sheet.png --operation slice-grid --slice-grid-xs "70,140,210" --slice-grid-ys "65,130"

FAQ

How are the cells named? <name>_r<row>c<col> — zero-based, row first: sprite_r0c0.png, sprite_r0c1.png, sprite_r1c0.png … With no cut, a single file sprite_r0c0.png is produced as a copy of the source.

What happens when I hit 25 cells? The ruler strip of the saturated direction is grayed out — you can't drag another line there. There's no popup; the limit (MAX_GRID_CELLS = 25) is enforced silently.

Can I scale to a target size with it? No — SliceX only cuts (pure cropping). For distortion-free scaling with fixed corners, Asset Slice (9-slice) is the one in charge.

Limits

  • At most 25 cells per image.
  • Strict grid — lines always go through the whole image (no guillotine/freeform cuts).
  • No reassembly / no scaling — that's Asset Slice's domain.
  • Pixel invariant: pure cropping, no resampling.

Examples

SliceX: a strip with free cut lines on the left, the individual cells on the right.

Any horizontal/vertical cuts — each cell is exported as its own PNG.

Related features