12 releases (7 breaking)
|0.8.1||Aug 28, 2022|
|0.7.0||Jun 21, 2022|
|0.6.0||Sep 13, 2021|
|0.5.2||Aug 11, 2019|
|0.4.0||Jun 25, 2017|
#459 in Algorithms
77 downloads per month
Used in spiropath
Convert SVG data to a list of polylines (aka polygonal chains or polygonal paths).
This can be used e.g. for simple drawing robot that just support drawing straight lines and liftoff / drop pen commands.
Flattening of Bézier curves is done using the Lyon library. SVG files are preprocessed / simplified using usvg.
Note: Currently the path style is completely ignored. Only the path itself is returned.
There is a small preview tool to view the generated polylines. It's simple and hacky, but helps to debug stuff.
cargo run --release --example preview path/to/file.svg
--release parameter is important, otherwise it's going to be very slow.
Use the mouse to drag / zoom the image and the
Esc key to close the window.
fn svg2polylines::parse(svg: &str, tol: f64, preprocess: bool) -> Result<Vec<Polyline>, String>;
examples/basic.rs for a full usage example.
This crate used to contain FFI bindings. These have been dropped as of version 0.8.0. If you need them, open an issue on GitHub and I might bring them back.
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT) at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.