Skip to content

lemonyte/pyautotrace

Repository files navigation

PyAutoTrace

Python bindings for AutoTrace.

Requirements

Installation

python -m pip install pyautotrace

Usage

import numpy as np
from autotrace import Bitmap, VectorFormat
from PIL import Image

# Load an image.
image = np.asarray(Image.open("image.jpeg").convert("RGB"))

# Create a bitmap.
bitmap = Bitmap(image)

# Trace the bitmap.
vector = bitmap.trace()

# Save the vector as an SVG.
vector.save("image.svg")

# Get an SVG as a byte string.
svg = vector.encode(VectorFormat.SVG)

Building

If you wish to build the package from source, clone the repository and follow the instructions for your platform below.

Linux and MacOS

sh ./scripts/build_unix.sh

A virtual environment will be created using your default Python installation. Compilation requires GLib, pkg-config, and unzip to be installed on your system, which most Linux distributions include by default. On MacOS you can install GLib with brew install glib.

Windows

.\scripts\build_windows.ps1

A virtual environment will be created using your default Python installation. In order to compile the generated C code, you will need to have Visual C++ Build Tools or another C/C++ compiler installed.

TODO

  • Tests
  • Documentation

License

This project is licensed under the LGPLv2.1 license.

This project depends on the AutoTrace project, which is licensed under the LGPLv2.1 license. AutoTrace, and by extension this project, requires the presence of GLib to compile, which is licensed under the LGPLv2.1 license, but this project does not depend on GLib to run.

This project contains code that replaces portions of AutoTrace and GLib, defined in overrides.cpp. Some of the implementations were taken directly from, or are based on, the source code of their respective libraries.