mirror of
https://github.com/visioncortex/vtracer.git
synced 2026-09-12 15:16:08 -07:00
f4fe428038
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.
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 0..=255
|
||
) -> 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: ...
|