Image to Vector
Free and open source. Trace PNG and JPG images — logos, icons, illustrations, pixel art, scans — into clean, editable SVG
with mathematically exact circles, true straight lines, and zero gaps between shapes.
Get it on the Microsoft Store for a one-click, auto-updating, signed install that supports development — or build the same open-source app free from the source below.
Vecto is a bitmap-to-vector tracing app (auto-tracer / image vectorizer) in the spirit of Vector Magic and Adobe Illustrator's Image Trace — but free, open source, and built around one structural idea: the traced image is a planar partition. Every boundary between two shapes is fitted once and shared by both sides, so the output physically cannot contain the hairline gaps and overlaps that plague most PNG-to-SVG converters.
- No gaps, no overlaps — by construction. Shared-boundary planar tracing (the same property Vector Magic's output has, and stacked-layer tracers like potrace don't).
- Geometric intelligence. Straight edges become true straight lines, circles and round caps become mathematically exact arcs (least-squares circle fits) — not wobbly approximations. Icons and logos come out looking designed, not traced.
- Sub-pixel precision. Anti-aliasing encodes where the real edge is; Vecto reads it and places boundaries at sub-pixel positions instead of snapping to the pixel grid.
- Live side-by-side compare with synced zoom/pan, segmentation view, palette swatches, and instant re-trace on every setting change. Copy the SVG straight to your clipboard.
- Fast. A 250 px logo traces in ~60 ms; a 4K photo posterizes in ~4.5 s.
- Deterministic and tested. Same input → byte-identical SVG; 14 geometric-invariant tests (exact area preservation, corner exactness, circle accuracy, culture safety).
- Headless CLI + benchmark harness for batch tracing and objective quality measurement.
Vecto is built for flat-color graphics. Know what to feed it:
| Do | Don't |
|---|---|
| Logos, icons, badges, stickers, flags | Smooth gradients and soft shadows — they are traced as bands of color |
| Flat illustrations and cartoon art with clear outlines | Small text — letters can lose their shape; retype text in your vector editor |
| Clean line drawings and scans of line art | Small or low-resolution images (thumbnails, icons around 128 px) — fine detail is lost |
| The largest, sharpest version of the image you have (PNG, or a high-quality JPEG) | Photos and painterly art — they come out posterized, not photo-real |
Grab the latest from the Releases page:
Vecto-x.y.z.exe— the desktop app as one self-contained file. Download, run, done — no .NET, no installer.Vecto-x.y.z-win-x64.zip— the app plus thevectocommand-line tool (unzip anywhere; add the folder toPATHto usevectofrom any terminal).
CLI for Linux and macOS (vecto-x.y.z-linux-x64 / -osx-x64 / -osx-arm64) is on the same page — full tracing, batch and benchmarking from any terminal (chmod +x after download).
SHA-256 checksums are listed in each release. Windows SmartScreen may warn on first run (new, unsigned executable) — choose More info → Run anyway.
Requires Windows 10/11 and the free .NET 8 SDK:
git clone https://github.com/DanielMevit/Vecto.git
cd Vecto
dotnet build -c ReleaseAfter the build:
- Desktop app:
Vecto.App\bin\Release\net8.0-windows\Vecto.exe— run it directly or pin it to the taskbar. - CLI:
Vecto.Cli\bin\Release\net8.0\vecto.exe— add that folder to yourPATHto callvectofrom anywhere.
On Linux or macOS, use the ready-made vecto command-line downloads from the
Releases page — the desktop app itself is Windows-only.
App: drop / paste (Ctrl+V) / open any PNG, JPG, BMP or GIF → automatic trace → export or copy SVG. Transparency is preserved. Tip: feed the highest-resolution image you have — trace quality scales with input size.
CLI:
vecto trace logo.png -o logo.svg --stats # vectorize an image
vecto trace photo.jpg --style photo --colors 24
vecto bench original.svg --scale 2 # round-trip quality benchmark vs ground truth
vecto samples out/ # generate test imagesPalette inference (weighted k-means++ in Oklab) → segmentation with small-region absorption
→ planar boundary graph (every chain between junctions traced once, shared by both
regions) → corner detection with sub-pixel validation → clamped smoothing + sub-pixel edge
refinement → simplest-model-first fitting (line → circular arc → least-squares Bezier) →
compact SVG. The full stage-by-stage map with parameters and code anchors lives in
docs/ai/ALGORITHM_INDEX.md.
Every algorithm is from the open literature (Schneider curve fitting, k-means++, Kåsa circle fit, Oklab, Douglas–Peucker) — no license-encumbered code anywhere in the engine.
Palette editor & tracing wizard, background removal, batch mode, PDF/EPS/DXF export, segmentation editing tools, centerline (stroke) tracing. See ROADMAP.md.
The repo is agent-friendly and human-friendly: start at AGENTS.md →
docs/ai/START_HERE.md. Build must stay at 0 warnings; every
engine change should pass vecto bench before/after. PRs welcome — see CONTRIBUTING.md. By contributing, you agree
that Daniel Mitev may relicense your contribution, including under commercial licences.
Brand (name, logo, app icon, colours): docs/brand/BRAND.md.
From v0.4.4 on, Vecto is licensed under the GNU AGPL-3.0-only — © 2026 Daniel Mitev (publicly Daniel Mevit, @danielmevit); see NOTICE. Versions up to and including v0.4.3 were released under the MIT License and stay MIT.
Want Vecto in a closed-source or commercial product without the AGPL obligations? Commercial licences are available on request — contact Daniel Mevit (@danielmevit).
The Vecto name and logo belong to Daniel Mitev (Daniel Mevit); forks must use a different name and logo.
Engine (Vecto.Core) has zero dependencies; the CLI uses SixLabors.ImageSharp 4.1.x for image
decoding (see THIRD-PARTY-NOTICES.md).
Keywords: image to vector converter, PNG to SVG, JPG to SVG, vectorize logo, image tracing software, auto trace, bitmap to vector graphics, free Vector Magic alternative, Illustrator Image Trace alternative, potrace alternative with color, SVG converter Windows, vectorizer C# .NET.

