Pure Go implementation of Potrace vectorization library. Supports simple SVG output generation.
Also includes cgo bindings for the original Potrace library.
Original image
Vectorized image
go get github.com/dennwc/gotrace
Process image with an alpha channel, generate SVG:
bm := gotrace.NewBitmapFromImage(img, nil)
paths, _ := gotrace.Trace(bm, nil)
gotrace.WriteSvg(file, img.Bounds(), paths, "")
Custom threshold function:
bm := gotrace.NewBitmapFromImage(img, func(x, y int, c color.Color) bool {
r, g, b, _ := c.RGBA()
return r + g + b > 128
})
paths, _ := gotrace.Trace(bm, nil)