How SplitPicture checks its tiles
Every archive can be checked after it is written: each tile is decoded again and laid back onto the picture, pixel by pixel. This page shows that check run on a fixed set of test pictures, with the date and the browser.
The check
After an archive is written, the board offers “Check these tiles go back together”. It does not trust its own plan: it takes the files exactly as they were encoded, decodes each one again, draws it at the position the plan gave it, and compares every pixel with the picture it was cut from. It reports the number of pixels compared, how many differ, the largest difference in any colour channel, the mean difference, and which tile was worst. It also confirms that every framed pixel landed in exactly one tile — or, with a gutter or a dropped remainder, how many pixels were left out on purpose.
For PNG the expected answer is “identical”: a lossless format given the exact pixels must hand them back. For JPEG and WebP the positions must still be exact, and the check reports how far the encoder moved the colours, because a lossy encoder works on each tile separately and its small errors differ on either side of a seam.
The test pictures
Four synthetic pictures, generated byte by byte by the measuring script from fixed seeds, so every run starts from identical inputs: smooth sky gradient over fine noise (1500 × 1000), one-pixel lines and a checkerboard (hard for lossy encoders) (1200 × 800), odd size, 1001 × 667, so tiles cannot all be equal (1001 × 667) and transparent background with a soft-edged disc (640 × 480). Each is cut with a grid chosen to exercise something: equal tiles, many tiles, a size that leaves a remainder, and transparency.
Results, 1 November 2026
Measured in Chromium 153.0.8010.12 by scripts/measure-tile-proof.mjs, which serves the built site, opens the board with a recipe link for each case, writes the archive and presses the check. The sentence in the last column is the board’s own output, copied verbatim.
| Picture | Grid | Format | Largest / mean | Archive |
|---|---|---|---|---|
| 1500 × 1000 | 3 × 3 | PNG | identical | 2.5 MB |
| 1500 × 1000 | 3 × 3 | JPEG 92 | 7/255 · 1.29/255 | 152 KB |
| 1500 × 1000 | 3 × 3 | JPEG 82 | 8/255 · 1.51/255 | 63 KB |
| 1500 × 1000 | 3 × 3 | WebP 82 | 9/255 · 1.61/255 | 22 KB |
| 1200 × 800 | 4 × 4 | PNG | identical | 176 KB |
| 1200 × 800 | 4 × 4 | JPEG 82 | 116/255 · 14.15/255 | 599 KB |
| 1200 × 800 | 4 × 4 | WebP 82 | 114/255 · 13.20/255 | 349 KB |
| 1001 × 667 | 7 × 5 | PNG | identical | 67 KB |
| 1001 × 667 | 7 × 5 | JPEG 82 | 173/255 · 5.16/255 | 145 KB |
| 640 × 480 | 2 × 2 | PNG | identical | 110 KB |
| 640 × 480 | 2 × 2 | WebP 82 | 85/255 · 0.51/255 | 19 KB |
Every PNG case came back identical, including the odd-sized picture whose 7 × 5 tiles differ by a pixel and the transparent one. The lossy cases kept every position exact and moved colours by a few levels on the smooth gradient; on one-pixel lines, the hardest content there is for a block encoder, the worst single value reached 173/255 in JPEG 82 on the 1001 × 667 picture. That is the encoder, not the cut — which is exactly what the check is for telling apart.
Running it again
The results are a file, src/content/tile-proof.json, written by the script after a build; this page is generated from it, so the numbers here cannot be edited by hand without the file and the page disagreeing with the next run. The script needs a browser, so it is run by hand when encoders or the cutting code change, and the date at the top of the results moves with it.
These results describe these pictures in one browser on one date. Your own export can be checked the same way: the button appears under the result after every archive, and its answer is about your tiles.
Open it on the board
- SplitPicture Cut one picture into an exact grid of separate files.
- Split into tiles Tiles of an exact pixel size, with a named rule for the pixels left over.
- Equal parts Type a number of parts; the closest-to-square grid for this picture is picked for you.
- PNG or JPEG for split tiles Measured seam differences when tiles are put back together, per format.


