#svg #algorithm #contour #tracing #image #graphics #contour-tracing

app raster2svg

A tool that use the contour_tracing library

1 stable release

1.0.14 Feb 21, 2022
1.0.12 Aug 3, 2021
1.0.11 Feb 13, 2021
1.0.10 Sep 10, 2020
1.0.3 Mar 23, 2020

#263 in Images

39 downloads per month

EUPL-1.2

19KB
189 lines

raster2svg crates.io

A tool that use the contour_tracing library Package

Features

  • Support RGB colors + alpha channel (fully transparent colors are not traced)
  • Sort the colors from the most used to the less used
  • Input format: a raster image file
  • Output format: an SVG file

Features from the contour_tracing library: Package

  • Trace contours using the Theo Pavlidis' algorithm (connectivity: 4-connected)
  • Trace outlines in clockwise direction
  • Trace holes in counterclockwise direction

Options

 -s, --size                Add the width, height and viewBox attributes
 -d, --ids                 Add the RGB colors and opacity values as id attributes
 -k, --inkscape            Add some Inkscape attributes (transparent background, pixel units, grid, snapping, ...)
 -r, --rendering           Set the shape-rendering attribute to crispEdges
 -c, --closepaths          Close the paths with the SVG Path Z command

 -z, --zoom <PERCENT>      Multiply the width and height attributes by a given percent (e.g. 250)
 -l, --color <COLOR>       Trace only one given color in hex notation RRGGBBAA (e.g. 112233FF)
 -a, --avcolor <AVCOLOR>   Avoid a given color in hex notation RRGGBBAA (e.g. 112233FF)
 -b, --bgcolor <BGCOLOR>   Add a background rectangle with a given color in hex notation RRGGBBAA (e.g. 112233FF)
 -i, --input <INPUT>       Input raster image filename (e.g. input.png)
 -o, --output <OUTPUT>     Output SVG filename (e.g. output.svg)

An example with some transparent colors

C:\>raster2svg.exe -s -d -k -r -i rust_input.png -o rust_output.svg
  • rust_input.png: rust_input.png

  • rust_output.svg: rust_output.svg

(click on it to view the source)

An example of a zoom by 800%

(Thanks Nayuki for your QR Code generator)

C:\>raster2svg.exe -s -z 800 -k -r -l 000000ff -b ffffffff -i qrcode_input.png -o qrcode_output.svg
  • qrcode_input.png: qrcode_input.png

  • qrcode_output.svg: qrcode_output.svg

(click on it to view the source)

Informations

  • Be careful with the size and complexity of your input image because the SVG file size grows rapidly...
  • An already compiled executable is available for Windows on GitHub: https://github.com/STPR/raster2svg/releases

License

raster2svg https://github.com/STPR/raster2svg

Copyright (c) 2022, STPR - https://github.com/STPR

SPDX-License-Identifier: EUPL-1.2

Contribution

Your contribution is highly appreciated. Do not hesitate to open an issue or a pull request. Note that any contribution submitted for inclusion in the project will be licensed according to the terms given in LICENSE.txt.

Dependencies

~6.5MB
~87K SLoC