SplitPicture

Split an image into tilesCut a picture into tiles.

Pick a tile size and get every tile back as its own file.

12 tiles ready
Choose photo

or drop it here · paste with Ctrl+V Drop one picture. Say how many pieces it becomes — a 3 × 3 profile grid, a row of carousel slides, or an A2 poster laid out across A4 sheets.

No photo handy?

  • Free
  • No sign-up
  • Photos stay on your device

Size first, count second

Most splitters ask how many pieces you want. Some jobs start from the other end: a texture atlas wants 512-pixel cells, a machine-learning dataset wants 256-pixel patches, a map viewer wants 1024-pixel tiles, a print shop wants a fixed pixel size per tile. This route opens the board on the tile-size division so the first thing you decide is the size, and the number of tiles follows from the arithmetic.

The arithmetic rarely comes out even. A photograph 4032 pixels wide holds seven 512-pixel tiles and 448 pixels over. Something has to happen to those 448 pixels, and the three possible answers produce different files, so the board puts the remainder rule directly under the size and prints the resulting column widths and row heights before you cut. Nothing is decided for you silently.

A worked example

1800 × 1200 → 12 files · columns 512 + 512 + 512 + 264 = 1800 px · rows 512 + 512 + 176 = 1200 px

512-pixel tiles with the Last slice rule: every tile is 512 × 512 except the last column (264 wide) and the last row (176 tall), and together they cover the 1800 × 1200 picture exactly.
FileCellFrom x, yPixels
texture-r1c1.pngrow 1 · col 10, 0512 × 512
texture-r1c2.pngrow 1 · col 2512, 0512 × 512
texture-r1c3.pngrow 1 · col 31024, 0512 × 512
texture-r1c4.pngrow 1 · col 41536, 0264 × 512
texture-r2c1.pngrow 2 · col 10, 512512 × 512
texture-r2c2.pngrow 2 · col 2512, 512512 × 512
texture-r2c3.pngrow 2 · col 31024, 512512 × 512
texture-r2c4.pngrow 2 · col 41536, 512264 × 512
texture-r3c1.pngrow 3 · col 10, 1024512 × 176
texture-r3c2.pngrow 3 · col 2512, 1024512 × 176
texture-r3c3.pngrow 3 · col 31024, 1024512 × 176
texture-r3c4.pngrow 3 · col 41536, 1024264 × 176
512-pixel tiles with the Last slice rule: every tile is 512 × 512 except the last column (264 wide) and the last row (176 tall), and together they cover the 1800 × 1200 picture exactly.

Which remainder rule to pick

Pick Last slice when the tiles will be placed back at their positions — a web map, a deep-zoom viewer, a game level — because nothing is lost and every full tile is the size the system expects. Pick Crop when every file must be exactly the size you typed, for a training set or an atlas, and losing a strip of edge pixels is acceptable; the receipt says how many were dropped. Pick Distribute when you mainly want even pieces and the exact size matters less: the count stays the same and the sizes differ by one pixel at most.

A gutter or an overlap can be added between tiles. An overlap of a few pixels is common for image-processing pipelines that need context at each edge; every tile then repeats that many pixels of its neighbour, and the index records where each one starts so the overlap can be removed again later.

Tile size is in pixels of the picture you opened. If a lighter copy is in use because the original was very large, the tiles are cut from that copy and the board says so.

How to do it here

  1. Open the picture. Drop it on the board, browse, or paste it.
  2. Type the tile size. Under Divide by → Tile size, set width and height in pixels.
  3. Pick the remainder rule. Last slice, Crop or Distribute; the column widths and row heights print underneath.
  4. Cut. Press the cut button to write the ZIP with an index and split.json.

Questions that come up

My picture does not divide by the tile size. What happens to the leftover?
You choose, and the board prints the numbers before anything is written. Last slice keeps every tile at exactly the size you typed and makes the last column and row smaller; Crop keeps every tile exact and drops the leftover pixels from the right and bottom edges; Distribute keeps the count and spreads the leftover so tiles differ by at most one pixel. A 2000-pixel-wide picture in 512-pixel tiles is three whole tiles and 464 pixels left over.
Are the tiles resized?
No. A tile is exactly the pixels under it, copied with smoothing off and whole-pixel offsets. If a pipeline needs every tile at one exact size and the picture does not divide, Crop is the honest choice; an optional resize step exists under Output, labelled as a second, lossy step.
Can I make square tiles from a rectangular photo?
Yes. Type the same width and height. With Crop the last partial row and column are dropped, so every file is square; with Last slice the edge tiles are rectangles smaller than the rest.
What is the largest number of tiles?
400 files in one cut. Above that the board refuses with the count, because an archive of more tiles is the thing that runs a phone out of memory. Larger tiles or a smaller region bring the count down.
How are the files named and numbered?
By default name-r01c01, name-r01c02 and so on, zero-padded so a file manager sorts them in cutting order. Tokens for index, row, column, width and height can be combined under Naming, and split.json inside the ZIP records every tile's x, y, width and height for scripts.
Is the picture sent anywhere?
No. It is decoded, cut and written inside this tab. The page keeps working with the network switched off once it has loaded.
Illustration of a picture divided into tiles, for Split Image Into Tiles

Split Image Into Tiles