Skip to content

Split an Image into Tiles — One PNG per Tile (ZIP)

When the engine or tool wants separate images — GDevelop, Construct, a level editor — cut the sheet into tile-NNN.png files. The grid is measured from the pixels and every tile is an exact region copy.

Drop a tileset or a repeating texture (PNG)
Open the Tile Lab
Runs in your browser. Files are not uploaded.
Tile Lab: a Kenney CC0 tilemap with its measured grid (16 px tiles, 1 px spacing)
The real Tile Lab with a CC0 asset (Kenney).
Outputs
  • TilesMeasured· Pillow
  • Padded atlasMeasured· Pillow
  • Seam reportMeasured· Pillow

What it does

  • Grid candidates (tile size, margin, spacing) measured and ranked; every number stays editable.
  • One PNG per non-blank tile plus metadata.json with each tile's rect, column and row.
  • Exact and near-exact duplicates reported as aliases; optional rotated and flipped variants.
  • Optional padded atlas (edge extrusion) for bleeding-free rendering; long slices can be cancelled.

How to do it

  1. Drop the sheet.
  2. Check the measured grid, or type the tile size, margin and spacing.
  3. Choose blank skipping, duplicates and variants.
  4. Download the ZIP.

Outputs and how each was checked

"Measured" means the downloaded file was opened again outside the page (Pillow, numpy or an independent parser) and the property was measured. Loading these files in a game engine was not tested.

TargetFilesCheck
Tilestiles/tile-NNN.png · metadata.jsonMeasured PillowEvery sliced tile equals its source region pixel for pixel (margin, spacing, blanks, duplicates).
Padded atlaspadded-atlas.pngMeasured PillowEdge pixels duplicated outward; the recorded atlas-padding quality checks pass in Chromium and Firefox.
Seam reportPNG (healed) · JSON measurementsMeasured PillowA wrapping tile is reported seamless, a ramp is reported as a seam, and the healed tile's wrap differs by at most 8 levels.

Evidence

Grid detection ranked the true grid first on 10 of 10 synthetic sheets (margin 1 / spacing 2 included); 13/13 sliced tiles byte-identical to their source regions; a 1600-tile slice finishes in 2.2 s and can be cancelled; seam verdicts measured against the tile's own interior.

Limits

  • Regular grids only; above 4 megapixels the tile size is typed in instead of measured.
  • Near-duplicate detection is a pixel threshold, not perceptual similarity.
  • "Make seamless" changes the art inside its blend bands and synthesises nothing; before and after are shown.
  • A tile smaller than 2 × 2 cannot be measured for seams.

Questions

Is a tile resampled?

Never: each tile is an exact region copy of the decoded sheet (13 of 13 byte-identical in the check).

What about engine tilesets with terrain rules?

For Godot, Tiled, Unity or LDtk tilesets, use the tileset slicer, which opens the Studio's Tile workspace.

Is it free, and do I need an account?

Everything on these pages is free and works without an account. There is no watermark and no export that is held back.

Are my sprites uploaded?

No. The Studio decodes, packs and exports in this browser tab. Projects are autosaved in the browser (IndexedDB) and can be saved as a .nerulio file.

Does it need Aseprite or an engine plugin installed?

No. .aseprite files are read and written in the browser, and each engine bundle carries what that engine needs (for Godot, the import settings and scene; for Unity and the Godot TileSet, a small editor script).