Tracing, not wrapping
There are two things a converter can do when you hand it a JPG and ask for an SVG, and they are not versions of each other.
The easy one is to put the original bitmap inside an
<svg> element. It always works, it never fails on
any picture, and the file has the right extension — but it is still
the same photograph, and it blurs when you zoom in exactly as it did
before. It is not vector art, and most people asking for an SVG want
vector art.
The other is to work out where the shapes actually are and write them as outlines. That is what this page does. The result contains no bitmap at all: it is a set of paths that stay sharp at any size, and every one of them can be selected, moved and recoloured in a vector editor.
How it works
The picture is first reduced to a small number of flat colours, choosing them from the image rather than from a fixed list — a two-colour logo keeps its exact two colours instead of being approximated. Each colour then gets its outline traced along the boundaries between pixels, so neighbouring shapes share an edge exactly rather than overlapping or leaving a hairline gap.
Those outlines come out as staircases, one step per pixel, so they are simplified: the steps are dropped and the corners kept. That is the difference between a four-kilobyte logo and a four-hundred kilobyte one that looks the same. Finally, the outer and inner outlines of each colour go into a single path with the even-odd fill rule, which is what makes the middle of an O a hole rather than a filled blob painted over the letter.
What it does well
Anything already made of flat colour with defined edges: logos, icons, line art, signatures, diagrams, charts, interface screenshots, scans of text or pen drawings. These trace cleanly, keep their shape, and frequently produce a file smaller than the image you started with.
What it does badly, and why
Photographs. Tracing rests on the assumption that a picture is made of flat regions, and a photograph is the opposite of that — a continuous gradient of millions of colours with no flat areas anywhere. Reducing it to a handful of colours invents hard edges that were never in the picture, and the result is a poster-effect approximation assembled from thousands of shapes in a very large file.
That is not a limitation of this particular tracer; it is what tracing is. So the page measures the picture before it converts anything — specifically, how much of it is made up of its own few commonest colours — and tells you when the answer says photograph. Flat artwork scores above ninety per cent on that measure and photographs score well under half, so the two are easy to tell apart. You can still trace it if you want to; you simply will not be surprised.
The settings, and what they cost
Colours is the number of flat colours the picture is reduced to before tracing. Too few and detail is lost; too many and JPEG noise starts being traced as if it were content. Start at the number of colours you can actually see in the image.
Detail is how closely the outlines follow the original pixels. Sharper keeps corners crisp at the cost of file size; smoother rounds them off and shrinks the file. Neither is correct in general, which is why you can see both.
Remove specks drops shapes of only a pixel or two. A JPG of a logo is not perfectly flat — compression turns each edge into a thin band of in-between shades, and every one of those becomes its own colour layer full of tiny islands. They are invisible and they are most of the file, so this is on by default.
Leave the background out finds the colour that dominates the edges of the picture and does not trace it, giving a transparent SVG. A logo that arrives on a white rectangle is the normal case, and that rectangle is not part of the logo.
Common mistakes
Tracing a photograph and expecting a clean vector result is the most common disappointment, and it is not a bug to fix — it is what tracing means when the source has no flat colour to begin with. The photograph warning exists to catch this before you spend time on settings that cannot fix it. A second common mistake is leaving "remove specks" off on a JPG that was compressed hard: the edge noise that despeckling exists to clean up turns into hundreds of extra tiny shapes, bloating both the shape count and the file size for detail nobody can actually see.
Changing a setting and downloading without tracing again is another trap the page guards against rather than one you can accidentally fall into: the preview and the download always reflect the last trace, and the status line says so plainly when a setting has changed since. If the download link looks stale, it is — press Trace again.
Edge cases
A picture that is one single flat colour produces zero shapes: there is nothing to trace an outline around, and turning on "leave the background out" in that case removes the only shape there is, leaving an empty SVG. The tool says this plainly rather than handing over a file that looks like it failed silently. A very small or very low-contrast image can also trace into almost nothing, for the same reason a photograph does — few genuinely flat regions to find edges between.
Related converters
If what you actually need is any file with an .svg
extension rather than real vector art — for a form that simply checks
the file type — wrapping the bitmap would be a different, much
simpler job than this page does, and is not what this converter
offers on purpose. If your image is a WebP or HEIC rather than a JPG,
convert it to JPG or PNG first with
WebP to JPG or
HEIC to JPG, then
trace the result here. For putting a picture into a document instead
of tracing it, see
Image to Word.
Where your picture goes
Nowhere. Everything above happens in your browser, in JavaScript, on the file you chose. There is no upload endpoint on this page and no network request while it works. Load the page, disconnect from the internet, and it still traces — which is the simplest demonstration that nothing is leaving your device.