What a split actually costs you
Dividing is not resizing. A 3000-pixel-wide picture cut into three columns gives three 1000-pixel columns. Nothing is added, nothing is sharpened, and no tile can carry detail the source did not already have. If the place these tiles are going shows each one at 1080 pixels, it is the destination that upscales them, and that upscale is the one step in the chain this tool has no say in.
The second cost is the format. Cutting a JPEG means decoding it and writing new JPEGs, and a JPEG written from a decoded JPEG sits one generation further from the camera. Setting the tile format to PNG removes that loss and multiplies the file sizes by roughly four. Leaving it on JPEG at 82 keeps the archive small and accepts a loss you will not see on one tile and might see on a flat sky spread across nine. Both are defensible; there is no third option that is neither.
The arithmetic is exact and worth stating plainly. A framed width of 1082 pixels across three columns is not 360.67 pixels three times. It is 361, 361 and 360, because the two spare pixels have to go somewhere and dropping them off the right-hand edge is the wrong place. Every tile’s width and height appears in the inspector before a single byte is written.
A split cannot add detail, and it cannot survive a destination that re-encodes what you give it. Those two facts set the ceiling on what any tool of this kind can do for you, including this one.
Four ways to divide a picture
They look like one operation and they are four different jobs, because the thing on the other side of the cut is different every time.
- Equal parts. R columns by C rows, tiles taking whatever shape the division produces. Nothing is discarded, and the tiles go back together exactly. This is the default here.
- Profile grid. Three columns of square tiles, previewed with the gutter the destination draws, and numbered in the order they have to be uploaded rather than the order they are read in. Built here, on its own page.
- Carousel slides. One wide picture into two to ten slides at 1:1, 4:5 or 3:4, where each boundary is a swipe rather than a gap and a face landing on one reads very differently. Not in this version.
- Poster tiling. A finished physical size laid across A4, A3 or Letter sheets with overlap for tape, cut marks, registration crosses and an assembly map. Millimetres and DPI are a second product surface and shipping them badly would be worse than shipping them later. Not in this version.
Two of the four are here today. Naming the other two and saying they are not built is more use to you than a greyed-out button that implies they nearly are.
What this accepts
JPG, PNG, WebP, GIF, BMP and ICO go straight to the browser’s own decoder, and so does AVIF wherever the browser has one. TIFF is recognised from its bytes and offered in the picker, but the decoding is the browser’s and only Safari does it; Chrome and Firefox refuse, and the refusal is reported as a decode failure rather than papered over. HEIC — what a recent iPhone shoots by default — is read through a WebAssembly build of libheif: roughly 2 MB of chunk, near 700 KB over the wire, fetched the first time a HEIC actually arrives and never on page load. A GIF contributes its first frame; animated tiles are not something this tool makes, and it says so rather than writing nine still pictures and calling that a split.
CMYK and Display P3 sources are converted to sRGB as they are decoded. A colour cast that is invisible on one photograph is very visible across nine tiles laid side by side, so the conversion happens once, up front, rather than nine times with nine chances to drift. A multi-entry ICO is handed over whole and the browser chooses which entry to decode; nothing here picks for it.
Orientation is settled before the grid is drawn. The EXIF flag is read out of the file, a two-pixel probe image establishes whether this particular browser has already applied it, and the rotation is applied by hand only if the browser did not — which is what stops a phone photograph coming out rotated twice. A picture shot sideways gives sideways tiles, which is what it should give.
The ceilings: 120 MB per file. Above roughly 32 megapixels, or 16 on iOS, the tool offers a lighter working copy and waits for an answer instead of deciding for you. Above 100, or 40 on iOS, it declines and explains the number, because a browser that runs out of canvas memory hands back a blank picture rather than an error and that is a worse outcome than a refusal.
Where splits go wrong
Six failures that come up often enough to be worth writing down, with what is actually happening in each.
- The tiles do not line up when I put them in a feed.
- They line up in a file manager and they will not line up in a feed, because the destination adds a gutter between tiles and trims a little off each edge before it shows them. That is what the profile-grid preview on this page renders: the tiles apart, with the gutter, at the proportions the grid uses. If a subject looks continuous on the canvas and broken in that preview, trust the preview.
- One tile came out a pixel narrower than the others.
- That is deliberate and it is correct. A width of 1082 pixels does not divide into three whole columns, so the two spare pixels are handed to the first two columns and the third is one pixel narrower. Placed back together with no gap the tiles reassemble to exactly 1082. The alternative — floor every column and lose the remainder — makes all three the same width and quietly deletes two columns of picture.
- A face has been cut in half.
- The tool divides geometry; it has no opinion about what is in the picture. Move the framing box, change the grid, or leave more room around whatever matters before cutting. There is no face detection here and none is claimed — a warning that is right most of the time is worse than no warning, because people stop checking.
- I asked for square tiles and part of the picture is gone.
- Square tiles need a rectangle whose sides are in the ratio of the grid, and a 3:2 photograph is not that rectangle. Crop to fit takes the largest matching rectangle out of the middle and tells you how many pixels went; pad to fit keeps every pixel and adds bars to make up the difference. The number of pixels lost or added is printed under the framing control before anything is written.
- The download is one file, not nine.
- It is one ZIP holding nine files plus a text list of the order they go in. Browsers will not save several files from one gesture without asking about each of them, and nine save dialogs is not an improvement. Open the ZIP the way your system opens any archive and the tiles are inside, named by the pattern you set.
- Nothing happened when I pressed the button.
- Check the tile format first: WebP cannot be written by every browser, and the tool refuses rather than handing back a PNG that claims to be a WebP. Switch to PNG or JPEG. If the count in the button is very high — a 12 × 12 grid is 144 encodes — the button shows which tile it is on while it works, and Stop is next to it.