Skip to main content

Python bindings for the Rust Vtracer raster-to-vector library

Project description

VTracer: Python Binding

Raster to Vector Graphics Converter built on top of visioncortex

Article | Demo | Download

Built with 🦀 by The Vision Cortex Research Group

Introduction

visioncortex VTracer is an open source software to convert raster images (like jpg & png) into vector graphics (svg). It can vectorize graphics and photographs and trace the curves to output compact vector files.

Comparing to Potrace which only accept binarized inputs (Black & White pixmap), VTracer has an image processing pipeline which can handle colored high resolution scans.

Comparing to Adobe Illustrator's Image Trace, VTracer's output is much more compact (less shapes) as we adopt a stacking strategy and avoid producing shapes with holes.

VTracer is originally designed for processing high resolution scans of historic blueprints up to gigapixels. At the same time, VTracer can also handle low resolution pixel art, simulating image-rendering: pixelated for retro game artworks.

A technical description of the algorithm is on visioncortex.org/vtracer-docs.

Install (Python)

pip install vtracer

Usage (Python)

import vtracer

input_path = "/path/to/some_file.jpg"
output_path = "/path/to/some_file.vtracer.jpg"

# Minimal example: use all default values, generate a multicolor SVG
vtracer.convert_image_to_svg_py(inp, out)

# Single-color example. Good for line art, and much faster than full color:
vtracer.convert_image_to_svg_py(inp, out, colormode='binary')

# All the bells & whistles
vtracer.convert_image_to_svg_py(inp,
                                out,
                                colormode = 'color',        # ["color"] or "binary"
                                hierarchical = 'stacked',   # ["stacked"] or "cutout"
                                mode = 'spline',            # ["spline"] "polygon", or "none"
                                filter_speckle = 4,         # default: 4
                                color_precision = 6,        # default: 6
                                layer_difference = 16,      # default: 16
                                corner_threshold = 60,      # default: 60
                                length_threshold = 4.0,     # in [3.5, 10] default: 4.0
                                max_iterations = 10,        # default: 10
                                splice_threshold = 45,      # default: 45
                                path_precision = 3          # default: 8
                                )

Rust Library

The (Rust) library can be found on crates.io/vtracer and crates.io/vtracer-webapp.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vtracer-0.6.10.tar.gz (19.7 kB view hashes)

Uploaded Source

Built Distributions

vtracer-0.6.10-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

vtracer-0.6.10-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

vtracer-0.6.10-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

vtracer-0.6.10-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

vtracer-0.6.10-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

vtracer-0.6.10-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

vtracer-0.6.10-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

vtracer-0.6.10-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

vtracer-0.6.10-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

vtracer-0.6.10-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

vtracer-0.6.10-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

vtracer-0.6.10-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

vtracer-0.6.10-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

vtracer-0.6.10-pp37-pypy37_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

vtracer-0.6.10-pp37-pypy37_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-pp37-pypy37_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

vtracer-0.6.10-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

vtracer-0.6.10-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded CPython 3.13 manylinux: glibc 2.17+ s390x

vtracer-0.6.10-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.2 MB view hashes)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.7 MB view hashes)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARM64

vtracer-0.6.10-cp312-none-win_amd64.whl (642.1 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

vtracer-0.6.10-cp312-none-win32.whl (604.3 kB view hashes)

Uploaded CPython 3.12 Windows x86

vtracer-0.6.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

vtracer-0.6.10-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

vtracer-0.6.10-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.3 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ i686

vtracer-0.6.10-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

vtracer-0.6.10-cp312-cp312-macosx_11_0_arm64.whl (795.1 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

vtracer-0.6.10-cp312-cp312-macosx_10_12_x86_64.whl (780.8 kB view hashes)

Uploaded CPython 3.12 macOS 10.12+ x86-64

vtracer-0.6.10-cp312-cp312-macosx_10_7_x86_64.whl (850.5 kB view hashes)

Uploaded CPython 3.12 macOS 10.7+ x86-64

vtracer-0.6.10-cp311-none-win_amd64.whl (643.0 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

vtracer-0.6.10-cp311-none-win32.whl (618.5 kB view hashes)

Uploaded CPython 3.11 Windows x86

vtracer-0.6.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

vtracer-0.6.10-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

vtracer-0.6.10-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.3 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ i686

vtracer-0.6.10-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

vtracer-0.6.10-cp311-cp311-macosx_11_0_arm64.whl (797.7 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

vtracer-0.6.10-cp311-cp311-macosx_10_12_x86_64.whl (780.9 kB view hashes)

Uploaded CPython 3.11 macOS 10.12+ x86-64

vtracer-0.6.10-cp311-cp311-macosx_10_7_x86_64.whl (849.2 kB view hashes)

Uploaded CPython 3.11 macOS 10.7+ x86-64

vtracer-0.6.10-cp310-none-win_amd64.whl (643.0 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

vtracer-0.6.10-cp310-none-win32.whl (618.5 kB view hashes)

Uploaded CPython 3.10 Windows x86

vtracer-0.6.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

vtracer-0.6.10-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

vtracer-0.6.10-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.3 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ i686

vtracer-0.6.10-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

vtracer-0.6.10-cp310-cp310-macosx_11_0_arm64.whl (797.7 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

vtracer-0.6.10-cp310-cp310-macosx_10_12_x86_64.whl (780.9 kB view hashes)

Uploaded CPython 3.10 macOS 10.12+ x86-64

vtracer-0.6.10-cp310-cp310-macosx_10_7_x86_64.whl (849.2 kB view hashes)

Uploaded CPython 3.10 macOS 10.7+ x86-64

vtracer-0.6.10-cp39-none-win_amd64.whl (643.2 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

vtracer-0.6.10-cp39-none-win32.whl (618.5 kB view hashes)

Uploaded CPython 3.9 Windows x86

vtracer-0.6.10-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

vtracer-0.6.10-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

vtracer-0.6.10-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.3 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ i686

vtracer-0.6.10-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

vtracer-0.6.10-cp38-none-win_amd64.whl (642.9 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

vtracer-0.6.10-cp38-none-win32.whl (618.6 kB view hashes)

Uploaded CPython 3.8 Windows x86

vtracer-0.6.10-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

vtracer-0.6.10-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

vtracer-0.6.10-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.3 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ i686

vtracer-0.6.10-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

vtracer-0.6.10-cp37-none-win_amd64.whl (642.8 kB view hashes)

Uploaded CPython 3.7 Windows x86-64

vtracer-0.6.10-cp37-none-win32.whl (618.5 kB view hashes)

Uploaded CPython 3.7 Windows x86

vtracer-0.6.10-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

vtracer-0.6.10-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (2.0 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ s390x

vtracer-0.6.10-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (2.3 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64le

vtracer-0.6.10-cp37-cp37m-manylinux_2_17_i686.manylinux2014_i686.whl (1.9 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ i686

vtracer-0.6.10-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.8 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARMv7l

vtracer-0.6.10-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page