Skip to main content

Crate img2svg

Crate img2svg 

Source
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§

ConversionOptions
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>