Image Splitter

Split an image into a grid of tiles — 3×3 for Instagram, rows, columns or a custom layout — and download them all as a ZIP.

Drag & drop an image here, or click to browse

No uploads. Your files stay on your device.

No uploads. Your files stay on your device.

Free forever, no sign-up, no cookies. Buy me a coffee

How it works

Drop an image, pick a grid — 3 × 3 for the classic Instagram profile grid, 1 × 3 for a carousel strip, or any custom layout up to 10 × 10 — and the image is sliced instantly. Every tile is cut with the Canvas API right inside your browser, so your photo is never uploaded to a server. Download tiles one by one, or grab them all as a ZIP that is also built locally on your device.

Instagram fills your profile grid newest-first from the top-left, so the tiles have to be posted in reverse. The Copy posting order button gives you the exact sequence (bottom-right tile first, top-left tile last) so the finished grid lines up. Tick Crop to a square first if you want perfectly square tiles from a non-square photo.

Frequently asked questions

How do I split an image into a 3×3 grid for Instagram?

Drop your image, leave the preset on 3 × 3 and the tool instantly cuts nine numbered tiles. Tick "Crop to a square first" if your photo isn't square, then use "Download all as ZIP" to get every tile at once. Nothing is uploaded — the slicing happens in your browser.

In what order should I post the tiles of an Instagram grid?

Instagram puts your newest post in the top-left corner, so the tiles have to be posted in reverse reading order: bottom-right first, top-left last. Click "Copy posting order" and the exact sequence is copied to your clipboard; it is also saved as posting-order.txt inside the ZIP.

Does splitting an image reduce its quality?

No. Each tile is cut pixel-for-pixel from the original at full resolution, so a 3000 × 3000 photo split 3 × 3 gives nine 1000 × 1000 tiles with no upscaling. PNG tiles stay lossless; JPEG and WebP tiles are re-encoded once at high quality (92%).

Report a bug