Files
SnapOtter/apps/docs/tools/image/split.md
T
SnapOtterandGitHub f858c4cea0 feat: clearer, disambiguated tool names across all surfaces (#520)
Renames 18 ambiguous or hard-to-search tool names so image tools self-qualify like the other modalities ("Compress" becomes "Compress Image"), and cleans up a few awkward names. Propagated across search (constants.ts), display (en.ts + 20 locales), the OpenAPI base spec + 20 locale specs, and the docs tool-page headings in 21 languages. Removes the duplicate "Normalize Audio" summary shared by the video and audio endpoints. Tool ids and routes are unchanged, so no API paths or bookmarks break.
2026-07-15 21:55:51 +08:00

2.2 KiB

description
description
Split one image into grid tiles by rows and columns or by pixel size, returned as a ZIP archive.

Split Image

Split a single image into grid tiles by column/row count or by specific pixel dimensions. Returns a ZIP archive containing all tiles.

API Endpoint

POST /api/v1/tools/image/split

Parameters

Parameter Type Required Default Description
columns integer No 3 Number of columns to split into (1 to 100)
rows integer No 3 Number of rows to split into (1 to 100)
tileWidth integer No - Tile width in pixels (min 10). Overrides columns when both tileWidth and tileHeight are set.
tileHeight integer No - Tile height in pixels (min 10). Overrides rows when both tileWidth and tileHeight are set.
outputFormat string No "original" Output format for tiles: original, png, jpg, webp, avif, jxl
quality number No 90 Output quality for lossy formats (1 to 100)

Example Request

curl -X POST http://localhost:1349/api/v1/tools/image/split \
  -F "file=@large-image.png" \
  -F 'settings={"columns":3,"rows":3,"outputFormat":"png"}' \
  --output split-tiles.zip

Example Response

The response is streamed directly as a ZIP file with Content-Type: application/zip. The filename follows the pattern split-<jobId>.zip.

Each tile inside the ZIP is named <originalBaseName>_r<row>_c<col>.<ext> (e.g. photo_r1_c1.png, photo_r2_c3.webp).

Notes

  • Accepts a single image file.
  • Supports HEIC, RAW, PSD, and SVG input formats (automatically decoded).
  • When both tileWidth and tileHeight are provided, they take priority over columns/rows. The grid dimensions are calculated as ceil(imageWidth / tileWidth) and ceil(imageHeight / tileHeight).
  • Edge tiles (rightmost column, bottom row) may be smaller than the specified tile size if the image dimensions are not evenly divisible.
  • Maximum grid size is capped at 100x100 (10,000 tiles).
  • The response streams the ZIP directly, so there is no JSON response body. Use --output with curl to save the file.