mirror of
https://github.com/visioncortex/vtracer.git
synced 2026-08-31 01:15:57 -07:00
74da0efb84
`6f163fc` widened watershed_detail from u8 to u32 in the core, CLI, and Python binding but not the Node/wasm binding, which still assigned a u8 to config.watershed_detail — a wasm build error (E0308). Widen the Node Options field to u32 and refresh every "0..=255" watershed doc (CLI help, Config field, .pyi, index.d.ts, and all three READMEs) to reflect that the level is now uncapped (default 128; higher = more regions).
68 lines
2.6 KiB
Python
68 lines
2.6 KiB
Python
from typing import Optional
|
||
|
||
__version__: str
|
||
|
||
class Config:
|
||
"""Conversion configuration. Construct with keyword arguments or a preset,
|
||
mutate via properties, then call one of the ``convert_*`` methods."""
|
||
|
||
def __init__(
|
||
self,
|
||
clustering: str = "color-cluster", # "color-cluster" | "bw" | "watershed"
|
||
hierarchical: str = "stacked", # "stacked" | "cutout" (mosaic)
|
||
mode: str = "spline", # "pixel" | "polygon" | "spline"
|
||
filter_speckle: int = 4,
|
||
color_precision: int = 6,
|
||
layer_difference: int = 16,
|
||
corner_threshold: int = 60,
|
||
length_threshold: float = 4.0,
|
||
max_iterations: int = 10,
|
||
splice_threshold: int = 45,
|
||
simplify: Optional[float] = None, # curve simplification tolerance in px (None = off)
|
||
path_precision: int = 2,
|
||
palette: Optional[list[str]] = None, # e.g. ["#112233", "#445566"]
|
||
max_colors: Optional[int] = None, # auto-quantize target
|
||
optimize: int = 1, # 0 | 1 | 2
|
||
binary_threshold: int = 128, # bw: fixed cutoff 0..=255
|
||
adaptive: bool = False, # bw: Bradley–Roth adaptive
|
||
adaptive_window: int = 0, # bw adaptive: window px (0 = auto)
|
||
adaptive_t: float = 15.0, # bw adaptive: % below local mean
|
||
watershed_detail: int = 128, # watershed: cut level (higher = more regions, uncapped)
|
||
) -> None: ...
|
||
|
||
@staticmethod
|
||
def bw() -> "Config": ...
|
||
@staticmethod
|
||
def poster() -> "Config": ...
|
||
@staticmethod
|
||
def photo() -> "Config": ...
|
||
|
||
clustering: str
|
||
hierarchical: str
|
||
mode: str
|
||
filter_speckle: int
|
||
color_precision: int
|
||
layer_difference: int
|
||
corner_threshold: int
|
||
length_threshold: float
|
||
max_iterations: int
|
||
splice_threshold: int
|
||
simplify: Optional[float]
|
||
path_precision: Optional[int]
|
||
palette: list[str]
|
||
max_colors: Optional[int]
|
||
optimize: int
|
||
binary_threshold: int
|
||
adaptive: bool
|
||
adaptive_window: int
|
||
adaptive_t: float
|
||
watershed_detail: int
|
||
|
||
def convert_file(self, input_path: str, output_path: str) -> None: ...
|
||
def convert_bytes(self, data: bytes, format: Optional[str] = None) -> str: ...
|
||
def convert_pixels(self, rgba: bytes, width: int, height: int) -> str: ...
|
||
|
||
def convert_file(input_path: str, output_path: str, config: Optional[Config] = None) -> None: ...
|
||
def convert_bytes(data: bytes, config: Optional[Config] = None, format: Optional[str] = None) -> str: ...
|
||
def convert_pixels(rgba: bytes, width: int, height: int, config: Optional[Config] = None) -> str: ...
|