Files
SnapOtter/apps/docs/tools/image/vectorize.md
T
SnapOtter 8532f3227b docs: audit all 157 tool pages against live schemas
Reconcile every tool page's parameters, defaults, and response shape against the tool's Zod settings schema and executionHint in code. Notable fixes: color-palette (add count + format params, hex output, median-cut algorithm), favicon (add 5 params, was documented as having none), qr-generate (add logoDataUri), convert (add ppm/eps/tga formats), video-loudnorm (-16 LUFS not -14), smart-crop (async 202 not sync 200), images-to-video (1080x1080 square), and several output-filename and behavior-note corrections.

Also normalize API endpoint paths to /api/v1/tools/<id> (no modality segment) and standardize curl examples on the Docker API port 1349. Verified with a clean docs build.
2026-06-18 14:12:28 +08:00

2.7 KiB

Image to SVG

Vectorize raster images into SVG using tracing algorithms. Supports black-and-white tracing (potrace) and full-color multi-layer vectorization.

API Endpoint

POST /api/v1/tools/vectorize

Parameters

Parameter Type Required Default Description
colorMode string No "bw" Tracing mode: bw (black and white) or color (multi-color layers)
threshold number No 128 Brightness threshold for B&W mode (0 to 255). Pixels below become black.
colorPrecision number No 6 Color quantization precision for color mode (1 to 16). Higher values produce more distinct color layers.
layerDifference number No 6 Minimum color difference between layers in color mode (1 to 128)
filterSpeckle number No 4 Minimum area for traced shapes in pixels (1 to 256). Removes noise/speckles.
pathMode string No "spline" Path smoothing: none (jagged), polygon (straight segments), spline (smooth curves)
cornerThreshold number No 60 Angle threshold for corner detection in color mode (0 to 180 degrees)
invert boolean No false Invert the image before tracing (swap black/white)

Example Request

curl -X POST http://localhost:1349/api/v1/tools/vectorize \
  -F "file=@logo.png" \
  -F 'settings={"colorMode":"bw","threshold":128,"filterSpeckle":4,"pathMode":"spline"}'

Color Vectorization

curl -X POST http://localhost:1349/api/v1/tools/vectorize \
  -F "file=@illustration.png" \
  -F 'settings={"colorMode":"color","colorPrecision":8,"layerDifference":6,"filterSpeckle":4}'

Example Response

{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/logo.svg",
  "originalSize": 45678,
  "processedSize": 12345
}

Notes

  • Output is always an SVG file regardless of input format.
  • Supports HEIC, RAW, PSD, and SVG input formats (automatically decoded to raster before tracing).
  • B&W mode uses the potrace algorithm. The image is converted to grayscale first, then thresholded to pure black/white before tracing.
  • Color mode uses a multi-layer approach: the image is quantized into color layers, each traced separately and stacked in the SVG output.
  • Lower filterSpeckle values preserve more detail but produce larger SVG files with more paths.
  • The pathMode setting significantly affects file size: none produces the most paths, spline produces the smoothest (and usually smallest) output.
  • For best results with logos and icons, use B&W mode with a clean high-contrast input. For photographs or illustrations, use color mode with higher colorPrecision.