All tools
Exact pixel partitions

Image Splitter

Divide a local static image into a grid, keeping every decoded source pixel exactly once. No uploads, storage or enlargement. Refresh clears memory.

One static JPEG/PNG, 20 MiB, 20 megapixels, 8192 px per edge; rows/columns 1–20, at most 100 tiles. Tile outputs ≤150 MiB. ZIP plus retained files must also fit 150 MiB. Browser decode can still fail under these caps.

Original file is preserved for generation and one memory-only Clear Undo. Every tile uses the exact native source rectangle, with no resizing. Grid lines/labels are preview-only. PNG preserves decoded alpha; JPEG flattens over its explicitly chosen background and may change pixels. Metadata/profiles are not preserved. Refresh clears memory; no platform-specific upload order or compatibility guarantee.

How to split an image

  1. Choose/drop one JPEG/PNG and inspect its orientation-corrected dimensions.
  2. Set rows/columns and PNG/JPEG output. Default format matches the source; JPEG requires an explicit opaque flattening background.
  3. Review preview-only grid lines and every tile rectangle, Generate, then download individual tiles, manifest JSON or prepare/download a complete ZIP.

Worked 5×3 example

Two columns and two rows use x boundaries [0,2,5] and y boundaries [0,1,3]. Row-major output dimensions are 2×1, 3×1, 2×2 and 3×2. Unequal tiles are retained, not padded silently. A 1×1 grid produces one full-sized tile.

Geometry, orientation and ordering

For oriented width W, height H, columns C and rows R: x_i=floor(i×W/C), y_j=floor(j×H/R). Each tile covers the half-open rectangle [x_i,x_(i+1)) × [y_j,y_(j+1)). All pixels are partitioned once with no overlaps, gaps, scaling or invented pixels. Rows cannot exceed height or columns exceed width, avoiding empty tiles. Browser EXIF orientation is applied once.

Overlay lines use these same boundary arrays scaled uniformly over the preview. Export rectangles never depend on CSS-rounded grid cells. Files have neither overlay lines nor labels. Manifest coordinates are zero-based pixels, human row/column numbers are one-based. Order is top-left across each row before the next row; no automatic reverse order for social uploads.

Limits and output details

20 MiB source, 20 megapixels, 8192 px per edge, rows/columns 1–20 and at most 100 tiles. Generation is serial, with one source bitmap and one tile canvas at a time. Total tile blobs are capped at 150 MiB. Complete ZIP plus retained outputs also must fit 150 MiB; oversize archives are refused rather than silently partial. Cancel/settings changes discard obsolete jobs, resources close, and original bytes remain available for retry.

Sanitized basename filenames use r01/c01 and actual encoder MIME. PNG tiles preserve browser-decoded geometry/alpha; JPEG recompression can change colors and pixels and removes alpha via explicit flattening. Profile/metadata preservation is not promised, and decode memory failures remain possible within caps. Splitting does not enlarge the image or promise platform-grid compatibility. Use cropper for one region and combiner to join images.