Skip to content

Pure Go implementation of Potrace vectorization library (translated with cxgo)

License

Notifications You must be signed in to change notification settings

gotranspile/gotrace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoTrace

Pure Go implementation of Potrace vectorization library. Supports SVG, PDF and DXF output generation.

It is a direct machine translation (transpilation) of potrace using cxgo.

Original image

Original

Vectorized image

Vectorized

Installation

Tool

go install github.com/gotranspile/gotrace@latest

Usage

Convert PNG image to SVG:

gotrace -s -o ./testdata/stanford.svg ./testdata/stanford.png

Library

go get -u github.com/gotranspile/gotrace

Usage

Minimal example:

func traceImage(outPath string, img image.Image) error {
    bm := gotrace.BitmapFromImage(img, nil)
    
    paths, err := gotrace.Trace(bm, nil)
    if err != nil {
        return err
    }
    
    sz := img.Bounds().Size()
    return gotrace.RenderFile("svg", nil, outPath, paths, sz.X, sz.Y)
}

For a full example, see example_test.go.

Updating the source

This library uses cxgo to translate C source code directly to Go. See cxgo.yml for the config.

To regenerate source, install cxgo and goimports and run:

go generate

About

Pure Go implementation of Potrace vectorization library (translated with cxgo)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages