mirror of
https://github.com/visioncortex/vtracer.git
synced 2026-09-26 14:01:18 -07:00
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.
2.7 KiB
2.7 KiB
vtracer (Python)
Python bindings for the vtracer
raster-to-vector framework. Built with pyo3 +
maturin; the core Rust crate stays pure (no I/O), and
this crate adds image decoding and a Pythonic API.
Install
pip install vtracer
Usage
import vtracer
# one-liners
vtracer.convert_file("in.png", "out.svg")
svg = vtracer.convert_bytes(open("in.png", "rb").read()) # -> str
svg = vtracer.convert_pixels(rgba_bytes, width, height) # raw RGBA8
# a rich, reusable configuration object
cfg = vtracer.Config(mode="polygon", filter_speckle=8)
cfg.hierarchical = "cutout" # seam-free mosaic
cfg.palette = ["#1b1b1b", "#e0c088", "#5a7d3c"] # snap to a fixed palette
cfg.max_colors = 8 # or auto-quantize
cfg.optimize = 2
svg = cfg.convert_bytes(data)
# presets
vtracer.Config.poster().convert_file("photo.jpg", "poster.svg")
vtracer.Config.bw().convert_file("scan.png", "lineart.svg")
Config
Constructor keyword arguments (all optional) — also exposed as mutable
properties, plus the presets Config.bw(), Config.poster(), Config.photo():
| arg | default | notes |
|---|---|---|
clustering |
"color-cluster" |
"color-cluster", "bw", or "watershed" |
hierarchical |
"stacked" |
"stacked" or "cutout" (mosaic) |
mode |
"spline" |
"pixel", "polygon", "spline" |
filter_speckle |
4 |
discard patches smaller than X px |
color_precision |
6 |
significant bits per channel |
layer_difference |
16 |
color diff between gradient layers |
corner_threshold |
60 |
degrees |
length_threshold |
4.0 |
px |
max_iterations |
10 |
|
splice_threshold |
45 |
degrees |
simplify |
None |
curve simplification tolerance in px (try 1–2.5) |
path_precision |
2 |
output decimal places |
palette |
None |
list of #rrggbb strings |
max_colors |
None |
auto-quantize target |
optimize |
1 |
0 off, 1 quantize+cleanup, 2 + shorthands |
binary_threshold |
128 |
bw: fixed cutoff, foreground below it |
adaptive |
False |
bw: Bradley–Roth adaptive thresholding |
adaptive_window |
0 |
bw adaptive: window px (0 = auto) |
adaptive_t |
15.0 |
bw adaptive: % below local mean |
watershed_detail |
128 |
watershed: hierarchy cut level 0..=255 |
Each Config has convert_file(input, output), convert_bytes(data, format=None) -> str,
and convert_pixels(rgba, width, height) -> str.
Build from source
maturin develop # into the active virtualenv
maturin build --release # produce a wheel