Convert PNG to SVG
Trace a PNG into a scalable SVG in your browser. It suits logos and flat icons with a handful of colours, not photographs.
Drop your files here
.png · up to 20 MB
More settingsFewer settings
How to Trace to SVG
- 1
Drop your PNG
Up to 20 files, 20 MB each and 4 megapixels per image. JPEG, WebP and BMP files with a .png name are converted quietly.
- 2
Choose the number of colours
Fewer colours means cleaner, lighter output. Two is right for a black-on-white mark; eight suits most flat icons.
- 3
Download the SVG
The result card shows how many colours and outlines came out, so you can tell straight away whether the settings were right.
What tracing actually does
Vectorising is not a conversion, it is an approximation. The image is first quantised into a limited palette, then the boundary of each single-colour region is followed and turned into a chain of straight segments and Bezier curves. That works well when the source really is made of flat areas: a logo, a stencil, an app icon, a screenshot of a chart. It works badly when the source is continuous tone: a photograph has no flat regions to find, so the tracer invents thousands of tiny ones, edges round off, gentle gradients break into visible bands, and the SVG ends up both larger than the PNG and softer than it. This tool will still process a photo, and it says so on the result card, but it is better to say so on this page than to surprise you after the fact.
The four controls, and what each is for
Number of colours is the main lever: it decides the size of the palette everything is quantised into, and it dominates both file size and how clean the outlines look. Smoothing sets how tightly the curves have to hug the traced boundary: low keeps sharp corners at the cost of many more nodes, high produces smooth curves that can swallow small details. Ignore small shapes discards any outline shorter than the given number of pixels, which is the right tool for JPEG artefacts and scanner noise. Outline width is zero by default, meaning shapes are filled with no visible stroke; raise it if you want each region drawn with a matching outline as well.
Transparency, and the result you can check
With Keep transparency on, pixels below half alpha are treated as a separate transparent entry in the palette and are not drawn, so a logo on a transparent background comes out with a transparent background. Turn it off and a rectangle in the most common opaque colour is laid down first, with the traced shapes on top, which helps when the destination cannot handle transparency at all. Either way the output is plain, readable XML: you can open it in any editor, see the paths, and recolour a fill by hand.
Your file stays on your device
Decoding and tracing both run inside your browser tab. The PNG decoder is WebAssembly, the tracer is JavaScript, and neither of them talks to a network. Nothing is uploaded, nothing is queued on a server, and closing the tab clears it all from memory.
Frequently asked questions
Why does the SVG not look identical to my PNG?
Because tracing rebuilds the picture out of curves rather than copying pixels. Colours are collapsed into a limited palette, and every boundary is approximated by a curve that runs near the original edge, not exactly along it. On flat artwork the difference is invisible at normal size; on detailed or photographic content it is obvious.
How many colours should I pick for a logo?
Count the flat colours in the logo and use that number. A one-colour mark on a white background traces best at 2, a typical two-tone brand mark at 3 or 4. Going higher does not add fidelity to flat artwork; it just splits anti-aliased edge pixels into extra intermediate shapes and inflates the file.
Why is the result so heavy for a photo?
A photo has no flat regions, so the tracer produces an outline for every small patch of similar colour, often tens of thousands of them. If the outlines add up to more than 50,000 nodes the result is refused rather than handed over, because it would be slower to open than the original and worse to look at. Lower the number of colours to 4 and raise "ignore small shapes" if you want to try anyway.
What does "ignore small shapes" do?
It drops any traced outline shorter than that many pixels. Small speckles from JPEG compression, scanner grain or a slightly noisy background all become outlines otherwise, and each one adds weight without adding anything you can see. The default of 8 removes most noise while keeping deliberate small details like the dot on an i.
Can I add an outline around the shapes?
Yes. Raise Outline width above zero and each traced region is drawn with a stroke in its own fill colour. At 0 the shapes are filled only, which is what you normally want for a logo, since an outline in the same colour just makes every shape slightly fatter.
Is transparency preserved?
Yes, when Keep transparency is on. Pixels below half alpha get their own palette entry and are not drawn at all, so the background stays transparent instead of becoming a white box. Turn the switch off to get a solid background rectangle in the image's most common colour instead.
How many files can I trace at once?
Up to 20 files, 20 MB and 4 megapixels each. The megapixel limit is lower than on our other PNG tools on purpose: tracing time grows faster than the pixel count, and a larger image would freeze the tab rather than finish.
Does the file get uploaded to a server?
No. The PNG is decoded and traced in your browser, and the SVG is built there too. Nothing leaves the tab at any point.