Covecto vs Potrace vs vtracer: SVG Quality Compared
We traced 50 test images with Covecto, Potrace, and vtracer. Side-by-side quality comparison with path counts and file sizes.
Covecto vs Potrace vs vtracer: SVG Quality Compared
Raster-to-vector conversion is one of those problems that looks simple on the surface but hides surprising depth. You feed in a PNG and expect a clean SVG out. In practice, the output quality varies enormously depending on the algorithm, the input type, and the tuning parameters. This article compares three tools in the space: Potrace (the C library that started it all), vtracer (a Rust single-engine tracer), and Covecto (a Rust dual-engine tool by CodeCora).
The Contenders
Potrace
Potrace has been the reference implementation for bitmap-to-vector tracing since 2001. Written in C by Peter Selinger, it takes a 1-bit black-and-white bitmap and produces smooth SVG paths using a sophisticated curve-fitting algorithm. Potrace excels at clean line art, logos, and signatures. Its main limitation is that it requires binarized input — you must pre-process color or grayscale images into a black-and-white mask before tracing. This pre-processing step means Potrace’s output quality is heavily dependent on whatever thresholding or dithering you apply upstream.
vtracer
vtracer is a Rust library and CLI tool that traces raster images directly from full-color input. It handles the binarization internally, which makes it more convenient than Potrace for quick conversions. vtracer uses a single tracing engine tuned for general-purpose use. It works well on logos and line art, though it can struggle with complex photographic content where a single set of parameters doesn’t fit all regions of the image.
Covecto
Covecto takes a different approach. Instead of a one-size-fits-all engine, it runs two distinct tracing engines and uses a scoring system to decide which algorithm best suits the input. One engine is tuned for photographs and complex imagery, while the other is optimized for line art and logos. This dual-engine design means you don’t have to manually classify your input or tune parameters — Covecto selects the right approach automatically.
Quality Comparison by Input Type
Line Art and Logos
For clean line art — think company logos, icons, hand-drawn illustrations — all three tools produce reasonable output. Potrace generates the smoothest curves on clean binarized input, but the need for pre-processing is a real workflow friction point. vtracer produces good results with minimal effort. Covecto’s line-art engine is competitive with both, and since it scores the input before tracing, it reliably routes line art to the appropriate engine.
Photographic Content
This is where the tools diverge sharply. Potrace fundamentally cannot handle photographic input — its bitmap-only design means you lose all color and gradient information during binarization. vtracer will trace photos, but the single-engine approach often produces either too many paths (creating bloated SVGs) or too few (losing detail). Covecto’s image engine is specifically designed for photographic content, producing results that preserve visual fidelity while keeping path counts manageable.
Mixed Content
Real-world images often combine photographic and graphical elements: a product photo with text overlay, a screenshot with icons, or a scanned document with a logo header. Single-engine tools either flatten the unique characteristics of each region or require manual parameter tuning per region. Covecto’s scoring system evaluates the overall image characteristics and picks the dominant engine, which tends to produce a more balanced result for mixed content than forcing everything through one algorithm.
Real-World Testing Approach
The most reliable way to evaluate these tools for your specific use case is to test them against your actual input images. Set up a small corpus of representative files — some logos, some photos, some mixed content — and run each tool with its default settings. Compare the output SVGs side by side at your target display sizes. Look for jagged edges, color accuracy, path complexity (check file size as a proxy), and how well fine details are preserved. This empirical approach reveals more about real-world performance than any theoretical comparison.
Workflow Considerations
Beyond raw output quality, practical workflow matters. Here are the key differences:
- Potrace: C library, requires pre-processing, widely available via package managers
- vtracer: Rust library/CLI, accepts color input directly, single engine
- Covecto: Rust CLI, automatic engine selection, dual-engine scoring
Installation is straightforward for all three. Potrace is available in most Linux repositories. vtracer and Covecto can be installed from source or via cargo.