Image Splitter for Grid Posts

Cut one image into an even grid of tiles and download them as a zip, named by row and column so you know the posting order.

Files you drop here are processed by your own browser. Nothing is uploaded and nothing is stored on our servers — the tools keep working even if you lose your connection after the page has loaded.

How to use Image Splitter

  1. 1Drop one image onto the box above, or click to browse.
  2. 2Pick a grid. The cut lines are drawn over the preview so you can see where they land.
  3. 3Press cut, then download all the tiles as a single .zip.

What an image splitter is for, and how to split image into grid posts

Chiefly one thing: posting a single large image across several feed positions so it reads as one picture in a profile grid. Instagram is the main case, and the 3x3 layout is why most people arrive here.

There are other uses. A 3x1 strip works for a carousel meant to be swiped. A 4x4 gives sixteen tiles for a larger mural. Splitting a sprite sheet or a scanned contact sheet into individual files is the same operation with a different intent.

Posting order is the part that catches people

A profile grid fills from the newest post backwards. The most recent thing you posted sits top-left, and older posts push right and down.

So to end up with an image that reads correctly, you upload the tiles in reverse: the bottom-right tile goes up first, and the top-left tile goes up last. Get it the wrong way round and you have a mirrored, inverted version of your picture spread across nine posts, which is not fixable without deleting all of them.

That is why the tiles here are named tile-r1-c1, tile-r1-c2 and so on rather than being numbered 1 to 9. Row and column tell you where a tile belongs, so working through them in reverse is a matter of reading the names rather than remembering a sequence.

The remainder problem

Most images do not divide evenly into three. A 1000 pixel wide image split into three columns is 333.33 pixels each, and something has to be done about the third of a pixel.

The naive approach rounds down and makes every tile 333 wide, which quietly throws away the last pixel column of the image. Do it in both axes on a 4x4 grid and you have lost a three-pixel strip off two edges. Nobody notices until they try to reassemble the tiles and find they no longer match the original.

Here the remainder goes to the last column and the last row, so 1000 becomes 333, 333 and 334. The tiles are very slightly unequal and they add up to exactly the source image.

Crop to shape first

If the target is a square grid, crop your source to a square before splitting. Otherwise the platform crops each tile to a square on its own terms, and a crop you did not choose is applied on top of the one you did.

Everything runs in this tab, so no image is uploaded and the only limit on size is your browser's canvas ceiling.

Frequently asked questions

What order do I post the tiles in?
Backwards. Instagram shows the most recent post first, so to make the grid read left-to-right and top-to-bottom you post the last tile first and the top-left tile last. The row-and-column filenames are there to make that manageable.
What happens if my image does not divide evenly?
The remainder goes to the last column and row rather than being discarded. A 1000px image split into 3 gives 333, 333 and 334, so the tiles reassemble to exactly the original. Implementations that just floor the division silently lose up to two pixels off each edge.
Should my source image be square?
For a 3x3 Instagram grid, yes. The feed crops each tile to a square, so a non-square source ends up cropped twice, once here and once by the platform. Crop to a square first and you control what stays.
Is transparency kept?
Yes, when the source is a PNG or WebP. Each tile keeps the source format, so a transparent background survives the split. AVIF, GIF and SVG sources come out as PNG.

More free tools