Expand description
img2svg - A high-quality image to SVG converter library
This library provides functionality to convert raster images (PNG, JPEG, etc.) into scalable vector graphics (SVG) format.
§Features
- Color quantization using median-cut algorithm
- Marching squares contour tracing for accurate shape detection
- Ramer-Douglas-Peucker simplification for clean paths
- Gaussian smoothing for natural curves
§Example
use img2svg::{convert, ConversionOptions};
use std::path::Path;
let options = ConversionOptions {
num_colors: 16,
smooth_level: 5,
..Default::default()
};
convert(Path::new("input.png"), Path::new("output.svg"), &options)
.expect("Conversion failed");Re-exports§
pub use enhanced_vectorizer::generate_enhanced_svg;pub use enhanced_vectorizer::vectorize_enhanced;pub use enhanced_vectorizer::write_enhanced_svg;pub use enhanced_vectorizer::EnhancedOptions;pub use enhanced_vectorizer::EnhancedPath;pub use enhanced_vectorizer::EnhancedVectorData;pub use image_filters::median_filter;pub use image_filters::prewitt_edge_detection;pub use image_filters::roberts_edge_detection;pub use image_filters::AdaptiveThreshold;pub use image_filters::CannyEdgeDetector;pub use image_filters::ColorOps;pub use image_filters::ColorTemperature;pub use image_filters::EmbossFilter;pub use image_filters::GammaCorrection;pub use image_filters::HistogramEqualizer;pub use image_filters::LaplacianSharpen;pub use image_filters::MorphologyKind;pub use image_filters::MorphologyOp;pub use image_filters::OtsuThreshold;pub use image_filters::Saturation;pub use image_filters::SepiaFilter;pub use image_filters::UnsharpMask;pub use image_filters::VignetteFilter;pub use image_filters::VintageFilter;pub use image_filters::CLAHE;pub use image_filters::HSL;pub use image_filters::LAB;pub use image_processor::load_image;pub use image_processor::quantize_colors;pub use image_processor::ImageData;pub use preprocessor::preprocess;pub use preprocessor::PreprocessOptions;pub use svg_generator::generate_svg;pub use svg_generator::generate_svg_advanced;pub use vectorizer::vectorize;pub use vectorizer::Curve;pub use vectorizer::Point;pub use vectorizer::VectorizedData;
Modules§
- bezier_
fitter - Least-squares cubic Bézier fitting with Newton-Raphson reparameterization.
- edge_
detector - Sobel edge detection for edge-aware quantization.
- enhanced_
quantizer - Enhanced color quantization with k-means++ initialization, k-means refinement, perceptual color distance, and edge-aware majority-vote smoothing.
- enhanced_
vectorizer - Enhanced vectorization pipeline ported from the vec project.
- image_
filters - Advanced image processing filters and algorithms
- image_
processor - path_
simplifier - Visvalingam-Whyatt path simplification with corner preservation.
- preprocessor
- Image preprocessing for better vectorization results
- region_
extractor - Flood-fill region extraction with 8-connectivity and Moore neighborhood contour tracing. Replaces marching-squares for exact region margins.
- svg_
generator - vectorizer
Structs§
- Conversion
Options - Options for image to SVG conversion
Functions§
- convert
- Convert an image file to SVG
- convert_
to_ svg_ string - Convert image data directly to SVG string
Type Aliases§
- Result
Result<T, Error>