To split images for an Instagram grid in Canva, designers typically place a single oversized photo across multiple 1080×1080 artboards, export each canvas as a separate PNG, and post the tiles to Instagram in reading order. Canva can pull this off for a planned 3×3 or 2×3 grid, but the workflow has friction: tile sizes are tied to the artboard template, guides have to be aligned manually, and switching to a different grid count means rebuilding the design from scratch. A purpose-built local splitter removes that friction. Image Grid Splitter takes one JPG, PNG, or WebP from your computer, divides it into up to 100 PNG tiles using the source image's natural pixel dimensions, and names every file by row and column so the posting order is unambiguous. File decoding, pixel extraction, PNG encoding, and download creation all run in the active browser tab, so the source never leaves the device.

How Canva Handles Instagram Grid Splits
Canva's grid-post workflow is built around square artboards rather than rectangle slicing. The typical recipe is to open a custom-size design whose width and height equal the full planned grid (for example, 3240×3240 for a 3×3 Instagram grid), paste in the source image, then duplicate the canvas once per tile and crop each duplicate to its own 1080×1080 region. Once the tiles look right, each artboard is downloaded as a PNG and the resulting files are uploaded to Instagram in order.
- Create a custom-size design whose width and height equal the full planned grid (for example, 3240×3240 for a 3×3 Instagram grid).
- Place the source image so it covers the full design, and turn on guides to keep row and column edges visible.
- Duplicate the canvas once per tile and crop each duplicate to its own 1080×1080 region, aligning each crop to the same guides.
- Download each artboard as a PNG with the dimensions set to match the original grid count.
- Upload the resulting tiles to Instagram in row-major order, starting with the top-left tile.
That approach works, but three things tend to trip people up. The cropped tile size is whatever the original artboard resolution was, not the source image's natural pixel size, so a low-DPI export can look soft when Instagram scales it back up. Manually repositioning the crop on each duplicate is fiddly, and a one-pixel misalignment shows up as a visible seam on the finished grid. If you decide halfway through that a 3×3 grid should really be a 2×3 carousel, the artboards have to be resized and the cropping redone. These limits are not bugs; they reflect that Canva is a general design tool, not a dedicated grid slicer. A focused splitter has one job and does it from the source pixels directly.
Split the Image in Your Browser with Image Grid Splitter
When the goal is to slice a single image into identical tiles without rebuilding a design, the browser-only Image Grid Splitter is a shorter route. The whole job happens inside one tab.
- Open Image Grid Splitter and choose a JPG, PNG, or WebP from your computer, keeping the file under 25 MiB and within the 20,000-pixel-per-side and 40-megapixel limits the tool shows.
- Enter the number of rows (1–10) and columns (1–10) that match the Instagram layout you want, then select Split image.
- Review each numbered tile's listed dimensions and approximate encoded size so you know what every download will be.
- Download the PNG files in any combination; the names (for example, photo-row-2-column-3.png) keep the reading order obvious for posting later.
Slicing and PNG encoding both happen on natural-size offscreen canvases, so adjacent tiles meet exactly and every source pixel belongs to one tile. Under the hood the tool uses the standard browser canvas drawImage call to copy each source rectangle once, then encodes the result as PNG via the canvas toBlob method so transparency and sharp boundaries are preserved. File selection itself goes through the standard File API documented by MDN, which is what keeps the source image on the local device.
How Tile Dimensions Are Calculated
The splitter's rule is simple: tile widths are calculated from proportional integer coordinates, so every source pixel belongs to exactly one tile. For an image that divides cleanly, each tile is just the source dimension divided by the grid count. For images that do not divide evenly, the splitter uses floor(i × dimension ÷ count) for each boundary rather than rounding every tile to a misleading common size.
The worked example is a 10-pixel width split into four columns. The boundary positions are floor(0 × 10 ÷ 4) = 0, floor(1 × 10 ÷ 4) = 2, floor(2 × 10 ÷ 4) = 5, floor(3 × 10 ÷ 4) = 7, and the final boundary at 10. The four columns span [0, 2), [2, 5), [5, 7), and [7, 10), giving widths of 2, 3, 2, and 3 pixels. The widest and narrowest tile differ by at most one pixel, the four widths sum to 10, and no narrow strip is discarded. The same rule is applied independently to the height, and the tool refuses a grid that would create a zero-pixel tile, so three rows from a 2-pixel-tall image is rejected up front rather than producing broken output.
Canva Split vs Image Grid Splitter at a Glance
Both routes get you from one image to a set of Instagram-ready tiles, but they trade off in different ways.
| Factor | Canva grid workflow | Image Grid Splitter |
|---|---|---|
| Source of tile pixels | Cropped from a duplicated artboard | Sliced from the source image's natural pixels |
| Tile size | Fixed by the artboard resolution (typically 1080×1080) | Calculated from the source image's width and height |
| Grid flexibility | Change count, rebuild artboards | Change count, re-split in place |
| File handling | Design uploaded to Canva's servers | Stays in the current browser tab |
| Output format | Whatever Canva exports (PNG or JPG) | PNG only, lossless |
| Best for | Adding text, stickers, or layout on top of tiles | Pure slicing where the source is already final |
The natural-pixels path is what the standard canvas drawImage API is designed to do: copy each tile rectangle onto its own canvas without resampling. For projects where the source image still needs text, stickers, frames, or background colors added on top of each tile, Canva's design tools remain the better starting point; the splitter is the right choice when the source is already final and only the cut is needed.
Posting the Tiles to Instagram in the Right Order
The reading order of a grid post matters because Instagram displays the first uploaded tile in the top-left slot and lays subsequent uploads left-to-right, top-to-bottom. For a 3×3 puzzle grid, the upload sequence is row 1 column 1, row 1 column 2, row 1 column 3, row 2 column 1, and so on through row 3 column 3. The Image Grid Splitter file names already follow that pattern, so a simple alphabetical sort in your downloads folder matches the upload sequence without renaming anything.
If you switch from a 3×3 plan to a 2×3 carousel after splitting, only the first six tiles in row-major order are needed. The remaining tiles can be discarded without affecting what is already posted, which is something the Canva workflow cannot do without redesigning the artboards and re-exporting everything.
Limits, Errors, and What to Watch For
The splitter publishes its own constraints up front so a job fails fast rather than producing partial output. Inputs are limited to supported browser-decodable JPG, PNG, or WebP files up to 25 MiB, with decoded images constrained to 20,000 pixels per side and 40 megapixels total. Hitting any of these bounds raises a visible error instead of a silently broken grid.
- Source metadata is not retained. Even when the visible pixel region is preserved exactly, JPEG and WebP files are decoded and re-encoded as PNG, so the original compression bytes, EXIF blocks, and color profiles are dropped.
- Output is PNG only. This is by design, because PNG preserves exact tile boundaries and transparency without introducing lossy JPEG artifacts into each extracted region.
- Uneven divisions are handled deliberately. Integer boundaries cover every source pixel exactly once; uneven rows or columns differ in size by at most one pixel.
- Changing the source image or either grid value invalidates the previous output, and temporary browser URLs are revoked when replaced or when the tool closes.
For more advanced cases such as grids with custom guides, gutters, bleed, or template overlays, an editor that supports manual slice positions is the right tool. For the common case of slicing one image into a uniform Instagram grid, the splitter does the job from the source pixels and hands back numbered PNGs ready to upload.