Config(simplify=...) / property in Python; simplify option in Node, with the tolerance documented in .pyi, index.d.ts, and both READMEs. The Node README's option list also catches up with the clustering rename and the binary/watershed options, and test.js drops the stale colorMode key (silently ignored since the rename, so its bw assertion was testing the default path) and asserts simplify shrinks output.
1.9 KiB
vtracer (Node.js)
Raster → vector (SVG) for Node, a WebAssembly build of the
vtracer framework. Image decoding
and vectorization both happen in wasm, so there is no native dependency —
just npm install.
Install
npm install @visioncortex/vtracer
Usage
const vtracer = require('@visioncortex/vtracer');
// file in, file out
await vtracer.convertFile('in.png', 'out.svg');
await vtracer.convertFile('in.jpg', 'out.svg', { mode: 'polygon', hierarchical: 'cutout' });
// buffers
const svg = vtracer.convertBuffer(fs.readFileSync('in.png'), { preset: 'poster' });
// raw RGBA8 pixels
const svg2 = vtracer.convertPixels(rgba, width, height, { clustering: 'bw' });
API
convertBuffer(buffer, options?) => string— encoded image (PNG/JPEG/GIF/BMP) → SVG.convertPixels(rgba, width, height, options?) => string— raw RGBA8 → SVG.convertFile(input, output, options?) => Promise<void>— read, trace, write.convertFileSync(input, output, options?) => void.
Options (all optional, camelCase)
preset ("bw" | "poster" | "photo", applied first), clustering
("color-cluster" | "bw" | "watershed"), hierarchical ("stacked" | "cutout"
for the seam-free mosaic), mode ("pixel" | "polygon" | "spline"),
filterSpeckle, colorPrecision, layerDifference, cornerThreshold,
lengthThreshold, maxIterations, spliceThreshold, simplify (curve
simplification tolerance in px, try 1–2.5), pathPrecision, palette (list of
#rrggbb), maxColors, optimize (0 | 1 | 2), binaryThreshold /
adaptive / adaptiveWindow / adaptiveT (binary mode), watershedDetail
(0..=255).
Build from source
Requires the Rust toolchain and wasm-pack:
npm run build # wasm-pack build --target nodejs --out-dir pkg
npm test