A clear answer. Here’s how.
Partitions each axis using floor(index × dimension/count), covering every source pixel exactly once. Up to 100 non-empty tiles, with no more rows/columns than source pixels. Uneven source dimensions produce tile sizes differing by one pixel. ZIP filenames encode row/column; the CSV gives source coordinates and dimensions. No overlap, padding or upscaling. Supports PNG/JPEG/WebP up to 10 MB and 4 million decoded pixels per file. Browser decoding and single-frame PNG re-encoding remove source metadata/colour profiles; no files leave this device.