For game maps

Tileset Splitter

Have one picture containing many floor or wall squares? Set the size of one square and download the pieces with a position map.

Example: one floor-tile grid → tile PNGs + map

Try this tool
One tile gridIndividual tiles
  1. 1. AddOne grid of tiles
  2. 2. AdjustSet square size and gaps
  3. 3. SaveTile PNGs and position map

1. Choose the image containing your tiles

For a grid of equal-size floor, wall, or terrain squares. Tiles can have small gaps between them.

How to use it

  1. 1. Measure the tile, not the gap around it

    Upload PNG or WebP and set Tile width and Tile height. A 32 × 32 tile with a one-pixel gutter is still 32 × 32; the gap belongs in Tile spacing, not tile dimensions.

  2. 2. Separate outer margin and spacing

    Outer margin is the equal border on all four sides. Spacing is between neighboring tiles. With 32 px tiles, 2 px margin, and 1 px spacing, the first tile begins at (2, 2) and the next column at x = 35.

  3. 3. Choose how blanks and duplicates are exported

    Skip fully transparent tiles excludes blank cells. Deduplicate identical tiles reuses one PNG for exact matching pixels. Keep tilemap.json in the ZIP to relate exported files to original row and column positions.

Tile size, margin, and spacing determine every crop

Spacing errors accumulate. If the real gap is 1 px but you enter 0, the second crop is one pixel early, the third two pixels early, and later tiles contain their neighbors. Inspect the far right and bottom of the export. The preview shows the first 16 exported tiles, not the entire sheet.

Four 32 px columns and three 32 px rows with a 2 px border and 1 px gaps need a 135 × 102 image. Width is 2 × 2 + 4 × 32 + 3 × 1; height is 2 × 2 + 3 × 32 + 2 × 1. Only complete cells are exported; a leftover strip does not become another tile.

Deduplication checks exact RGBA, including invisible RGB values. Visually identical transparent tiles can remain separate. tilemap.json is an ImageMint manifest with positions and tile IDs, not a native Unity or Godot tilemap, collision map, or autotile rule set.

Example: a 135 × 102 image containing a 4 × 3 grid
Setting or inputWhat it means
Tile width / height32 / 32 px
Outer margin2 px on every side
Tile spacing1 px between tiles
Column originsx = 2, 35, 68, 101
Expected cells12 before skipping and deduplication

Check before downloading

File numbers can differ from original cell numbers

Skipped cells retain positions in the manifest, and duplicates can refer to an existing tile ID. Keep the manifest if you need to reconstruct the original layout.

Use a regular grid, not an arbitrary atlas

Uneven rectangles and asymmetric borders are not described by these controls. Limits are 4096 px per image side, 16 million image pixels, 1024 grid cells, and 512 px per tile side.

Questions

Why do later crops include a neighbor’s edge?

Recheck spacing first. Wrong spacing causes increasing displacement; wrong margin shifts all cells equally. If saved crops are clean but the engine shows seams, check texture filtering and import settings separately.

What counts as an empty tile?

Every pixel must have alpha 0. A single faint nonzero-alpha pixel makes the tile nonempty.

Does deduplication compare visual similarity?

No. It compares exact RGBA values. Near-matching colors are distinct, and hidden RGB under transparent pixels can prevent a match.

Can I import tilemap.json directly into my engine?

It is not a universal engine format. Use the grid positions and IDs as a reference or write an adapter. Collisions and autotile behavior still need authoring.

Why was the last row not exported?

Only complete cells inside the configured margin are extracted. Check image dimensions and whether the last strip is padding or a partial cell. Partial crops are not stretched to fit.

Related tools and tutorials

Tileset grid and engine-import guide — Find boundaries and distinguish crop problems from rendering seams.

Split a tileset with gutters — Verify a 135 × 102 source with 32 px tiles, 2 px margin, and 1 px spacing.

Sprite Sheet Slicer — Use manual boundaries for an irregular sheet.

Pixel Art Palette Extractor — Compare a new tile’s colors with the environment palette.