Initializing... drag & drop files here
Supports: PNG, APNG
PNG is the best raster source a tracer can be given. It is lossless, so edges arrive exactly as they were drawn with no JPEG blocking to confuse the outline finder, and it is the format every awkward source is worth routing through before you trace it. This tutorial covers the single slider this page exposes, the ceiling that slider silently exceeds, what happens to PNG transparency once it becomes vector paths, and the images that should never be traced at all.
.png onto the page or click "+ Add Files" to browse. Several images can be queued and they all trace with the same setting..svg. Files upload over an encrypted connection, are processed on our servers, and are deleted automatically after a few hours. No sign-up, no watermark.The label says "Number precision", which sounds like it only governs decimal places in the path data. It does more than that. The value you pick is handed to the tracing engine twice — once as path precision (decimal places kept in each d attribute) and once as colour precision (significant bits retained per RGB channel). At 6 you keep six bits per channel, or 64 levels each of red, green and blue. At 1 you keep one bit per channel and the picture collapses into a handful of blocks.
That double duty is also where the ceiling comes from. An 8-bit RGB channel cannot hold nine significant bits, so the engine rejects any colour precision above 8. Because one slider drives both parameters, asking for nine decimal places in the path data also asks for nine bits of colour, and the whole job aborts with nothing to download. The slider still travels to 10.
| Slider position | Colour bits kept | Path decimals | Result on our 512 x 512 three-colour test PNG (4,091 bytes) |
|---|---|---|---|
| 1 | 1 per channel | 1 | 327 bytes — collapses to a couple of blocks |
| 2 | 2 per channel | 2 | 2,215 bytes |
| 4 | 4 per channel | 4 | 2,720 bytes |
| 6 (opens here) | 6 per channel | 6 | 3,215 bytes, 3 paths — clean |
| 8 (ceiling) | 8 per channel | 8 | 3,695 bytes, visually identical to 6 |
| 9 or 10 | out of range | out of range | Aborts: Color precision is invalid at 9. It must be within [1,8] |
Practical reading: 4-6 is the useful band, 8 is the safe maximum, and everything above 8 is a footgun rather than a quality setting. Raising the slider never adds detail the trace did not find — it only decides how exactly the shapes it did find get written down.
| Source PNG | What the tracer finds | Measured outcome |
|---|---|---|
| Flat three-colour logo, 512 x 512 | 3 colour regions | 3,215-byte SVG — smaller than the PNG and scales without blurring |
| Icons, stencils, silhouettes, line art | tens of regions | Compact, genuinely editable in a vector app |
| Screenshots containing text | hundreds of regions | Every glyph becomes outlines, not live text; usually larger than the PNG |
| Photographic image, 640 x 480 (622,092 bytes) | 72 regions with enormous path data | 619,696-byte SVG — no size win at all, and visibly posterised |
The photographic row is the one worth internalising. Vectorizing a photo does not fail loudly; it succeeds and gives you a file that is the same size, looks worse, and is slower to render. If the goal is a smaller picture rather than scalable paths, compress the PNG or export PNG to JPG instead.
PNG is the only common trace source that carries an alpha channel, so this deserves a straight answer: alpha is treated as a binary mask, not as a value.
#FF0000 fill with no fill-opacity attribute anywhere in the output.The consequence is that soft things harden. A 50%-opacity overlay becomes solid. A drop shadow that fades to nothing becomes a flat slab wherever its alpha was non-zero. Anti-aliased edges, which are a ring of partially transparent pixels, become an opaque colour fringe hugging the shape. If a logo has a soft glow you do not want baked in, delete the glow before tracing rather than after.
A tracer works on decoded pixels, so everything about the output is decided by the pixels it is handed. That is exactly why PNG is the recommended waypoint for awkward sources — camera RAW, HEIC and AVIF, multi-entry ICO files, layered PSDs, lossless WebP. None of those are "an image" until something renders them, and rendering them to PNG yourself means you choose the exposure, the crop, the contrast and the pixel size rather than inheriting a default. Convert the awkward source to PNG first, look at it, then trace it here.
The other genuine limit is intent. If what you actually need is a scalable illustration rather than an automated outline of an existing bitmap, no tracer will get you there — redraw it in a vector editor. And if you already have an SVG and need pixels instead, the reverse trip is SVG to PNG.
It vectorizes. The output contains real <path> elements with Bézier curve data and solid fill colours — not a base64-encoded copy of your bitmap inside an <image> tag. You can open the resulting file in a text editor and read the geometry. Our three-colour test logo produced exactly three <path> elements, one per colour region, which is what genuine tracing looks like.
Because the slider was given a 1-10 range while the underlying colour-precision parameter only accepts 1-8, and one slider value feeds both the colour and the path parameter. Positions 9 and 10 push colour precision out of range and the tracer aborts. We reproduced this on vtracer 0.6.4, the engine build this converter runs, and the error is explicit: Color precision is invalid at 9. It must be within [1,8]. Treat 8 as the real maximum until the range is clamped.
Partly, and in a specific way. Fully transparent areas are simply not drawn, so a logo on a transparent background stays transparent. But partial transparency does not survive — we measured alpha values from 1 through 255 and every one of them traced to a fully opaque fill, with no fill-opacity emitted at all. Soft shadows, glows and 50%-opacity overlays come back solid.
No. Tracing approximates continuous tone as a set of flat colour regions, so a photo comes back posterised. It also gains nothing in size: our 622,092-byte photographic test PNG produced a 619,696-byte SVG. Tracing is for logos, icons and line art. For photographs, stay in a raster format.
Because PNG is lossless. JPEG's block-transform compression softens edges and sprinkles ringing artifacts around high-contrast boundaries, and the tracer faithfully outlines those artifacts as though they were part of the artwork — producing stray slivers along every edge. The same image kept as PNG gives the tracer an exact boundary to follow. If you only have a JPG, JPG to SVG works, but expect a noisier trace.
Because none of those are decoded pixels yet, and a tracer only ever sees decoded pixels. A RAW is an undeveloped sensor mosaic; a HEIC is a photographic codec carrying continuous tone and sometimes HDR; an EPS is PostScript drawing instructions; an ICO is a container of several bitmaps at different sizes, and a tracer has no way of knowing which one you meant. Something has to resolve each of those into a single flat raster, and doing it yourself means you decide how — which frame, which exposure, which size — instead of inheriting whatever a default produces. PNG is the natural landing place because it is lossless, so the round trip costs no quality. That is the whole reason this page exists as the recommended waypoint.
Yes. SVG is a W3C XML-based standard, and caniuse currently reports basic SVG support at about 96.7% of tracked global browser usage, covering Chrome, Firefox, Safari and Edge. Vector editors including Illustrator, Inkscape, Figma and Affinity Designer import it directly. What you will not get back are layer names, groups or live editable text — those concepts do not exist in the traced output.
Your PNG is uploaded over an encrypted connection and traced on our servers. Files are deleted automatically after a few hours, there is no sign-up and no watermark, and nothing is shared or made public.