Convert BMP to SVG

Converting BMP to SVG is tracing, not conversion. The bitmap is a grid of colours with no shapes in it, so the tracer finds the edges between flat areas and draws outlines around them. On a logo that produces something genuinely scalable; on a photograph it produces a posterised copy.

  • Where it runs In your browser. The file is never uploaded.
  • Rebuilt SVG works differently from a BMP, so this is not the gradual degradation a lossy codec applies. What SVG can express is reproduced faithfully; what it has no equivalent for does not survive at all.
  • File size limit Up to 100 MB per file, free, without an account.
  • Worth knowing Tracing redraws the picture as flat shapes, which is what lets the result be scaled to any size without going soft. It works by finding the edges between areas of similar colour and drawing an outline around each one, so it is at its best where those areas genuinely exist: a logo, an icon, a flat illustration, a scanned line drawing. A photograph has no flat areas, so tracing invents them — the result is posterised and larger than what you started with. The traced file is measured against yours, and the page tells you which of the two happened before you download it.

Up to 100 files at once. Mixed formats are fine.

The SVG is redrawn, not re-encoded from the BMP

Every other conversion on this site takes a picture and writes the same picture in another format. This one cannot, because there are no shapes in a bitmap to carry across — a BMP is a grid of colour values and nothing else, with no record of the logo, the letters or the lines that produced it.

So the tracer guesses. It finds boundaries between areas of similar colour and draws a path around each one, and the result is a new drawing that happens to resemble the old picture. That guess is what tracing is, and it is why this page spends its length on which images it guesses well about rather than on settings. It is also why nothing here tries to predict the outcome from the file: a colour-count heuristic would be a guess about a guess, and the real answer is available for free a moment later by looking at what came out.

The artwork that traces well out of a bitmap

Flat regions with real boundaries between them: a logo, a wordmark, an icon, a flat illustration, a schematic, a scanned line drawing. That material is made of exactly the thing the algorithm looks for, so the output is a small set of clean paths that scale to any size without going soft.

Measured before this was built rather than after: a flat logo round-tripped faithfully — sharp edges, correct colours, rounded corners intact — and 6 KB of PNG became 16 KB of SVG that now scales to a billboard. Larger, and worth it, because the larger file is the one that can be printed at a metre wide. That is the shape of a successful trace on this page: a modest increase in bytes in exchange for resolution independence. If the output is many times the input rather than a few times it, the trace did not work and the next two sections explain why.

The SVG is editable, up to a point

What comes out is a list of filled paths, so Inkscape, Illustrator and Figma will all open it and let you select a shape, recolour it, move it or delete it. For a recovered logo that is usually the whole job: trace at four or eight colours, delete the stray specks the tracer left along the edges, set the fills to the exact brand values, and the artwork is usable again.

How pleasant that is depends entirely on the shape count. A clean mark traced at four colours is a handful of paths and behaves like something a person drew. A traced photograph is thousands of overlapping blobs with no structure, no names and no grouping, and editing it is not meaningfully easier than redrawing the picture. The paths also do not correspond to anything: there is no path that is "the letter A", only the outline of a region that happened to be one colour.

What tracing does to a photograph in a BMP

It posterises it. A photograph has no flat regions — a sky is a continuous gradient and a face is a continuous gradient — so the tracer manufactures the boundaries it needs by reducing the picture to a handful of colours first, and then outlines those.

The measured outcome is the one to expect: a photograph came out four times larger than the compressed original and visibly posterised. Both halves of that are bad, which is unusual — most trade-offs here give you something in exchange. If the goal was to make a photograph scale, nothing achieves it, and the right move is to keep the pixels and use the largest version you have.

Screenshots are the worst thing to trace

A screenshot containing text produced an SVG forty times the size of the PNG. Every anti-aliased letter is a cluster of slightly different greys, and each of those becomes its own small path, so a paragraph of text turns into thousands of shapes that together look like slightly wrong text.

Since screen captures are one of the commonest things to arrive as a BMP, this is worth saying loudly. If the point was the words, the BMP to TXT conversion reads them. If the point was a sharp image of the interface, PNG keeps every pixel exactly and is a fraction of the size of either the bitmap or the trace.

The colour count is the setting that decides the file

Four colours for a single-colour mark or a simple logo, eight for a flat illustration, sixteen where there is real shading, thirty-two only when the result is visibly missing something. The default is eight and it is the right starting point for most artwork that arrives as a bitmap.

The cost of raising it is not linear in any way that feels fair. Each additional colour is another complete set of regions to outline, so the shape count and the file size climb quickly while the visual improvement flattens. Trying eight and then sixteen takes twenty seconds and settles the question better than reasoning about it does. There is a second reason to keep the number low that has nothing to do with size: a logo traced at four colours is something you can tidy up afterwards, and one traced at thirty-two is something you can only accept or discard.

Smooth, balanced and sharp on a traced bitmap

The detail setting controls how closely the paths follow the pixels. Smooth accepts a looser fit and discards any shape below sixteen pixels, which removes the specks that anti-aliasing leaves along every edge. Sharp keeps shapes down to two pixels and follows the grid closely. Balanced sits between them and is the default.

Smooth is usually right for a logo and sharp is usually right for a technical drawing where a thin line matters. What the setting never does is blur the image first: that would reduce the speck count by softening exactly the hard edges that were the only reason to trace a logo, so the blur radius stays at zero on every setting.

Large bitmaps are reduced to 1,600 pixels before tracing

Tracing cost grows with the number of edges rather than with the file size, and a large photograph has an edge almost everywhere. Left alone, a twelve-megapixel source can produce a multi-megabyte SVG over tens of seconds — a worse outcome than the one the visitor was trying to avoid.

Scaling down first is not the loss it would be in a raster conversion. The output is resolution-independent, so a logo traced at 1,600 pixels wide and the same logo traced at 4,000 render identically at any size; what changes is only how tightly the paths hug the original pixel grid. Since a BMP is uncompressed and therefore often enormous, this ceiling is reached on this page more than on any other.

Why the size comparison flatters a BMP source

After tracing, the two byte counts are measured and compared, and the interface says which way it went. That warning is the honest core of the feature — no heuristic predicts whether a trace will work, but the answer is available for free a moment later.

It needs a correction when the source is a bitmap. Against three uncompressed bytes per pixel almost anything looks like a win, so a traced photograph can be smaller than its 36 MB BMP while being four times larger than a PNG of the same picture and considerably worse. Convert the bitmap to PNG as well and compare against that number instead; it is the one that reflects what tracing actually cost. The measurements quoted above are all against compressed originals for the same reason — a comparison against an uncompressed bitmap would have made every one of them look like a success, including the photograph.

The tracer, the licence and where the work happens

The tracing is done by imagetracerjs: 46 KB, pure JavaScript, released under the Unlicense. It is not the best tracer available. potrace and autotrace produce cleaner curves and are GPL; VTracer produces the best output of the four and is properly licensed, but its only browser packaging declares no licence at all, which this project treats as blocked rather than as permissive.

What that buys is a conversion that runs entirely in your browser. The bitmap is decoded, scaled and traced in the tab, nothing is uploaded, and there is no account or daily allowance — which matters, because the artwork people try to recover this way is almost always a logo somebody owns.

How to trace a BMP into an SVG

  1. Check that the bitmap is flat artwork — a logo, a diagram, a line drawing — and not a photograph.
  2. Drop it here, start at eight colours and balanced detail, and look at the result.
  3. Compare the SVG against a PNG of the same image, not against the BMP.

BMP and SVG: a grid of colours against a list of shapes

BMP compared with SVG
BMPSVG
Full nameWindows BitmapScalable Vector Graphics
File extension.bmp, .dib.svg
Media typeimage/bmpimage/svg+xml
CompressionUncompressedUncompressed
First published19872001
Published byMicrosoftW3C
SpecificationSVG 1.1
LicensingPublished, not standardisedOpen standard
Standing todayLegacy, still read everywhereCurrent
Bit depth8
Colour it can describeRGB, indexed paletteRGB
Opens in a browserEvery browserEvery browser
Considered insteadPNG, TIFFPNG, PDF

What the target format adds

SVG supports transparency and BMP does not. That is room the result has and the original never used — converting does not create a transparent background, it only makes one possible afterwards.

SVG is a working format and BMP is a finished one. What comes back is editable text and objects rather than a picture of a page, which is usually the reason for the conversion and also where its limits are.

SVG can hold animation; a BMP is one frame. The result is a single-frame file in a format that could hold more.

Opening the result

BMP dates from 1987 and is largely superseded. SVG is what current software writes, so the conversion is as much about staying readable as about the file itself.

The usual programs do not overlap: BMP opens in Microsoft Paint, GIMP and IrfanView, SVG in Inkscape, Adobe Illustrator and Figma — so whoever receives the result needs something from the second list.

What each format is for

The two are aimed at different work: BMP at moving data between programs, SVG at the web, line art and logos and editing. That is worth weighing before converting, because the reason one exists is usually the reason the other is awkward.

BMP is Microsoft's format, published in 1987. It records 8 bits per channel.

SVG comes from W3C and dates from 2001, specified as SVG 1.1. Inkscape, Adobe Illustrator and Figma all read it.

BMP to SVG: what traces well and what does not

Are my BMP files uploaded anywhere?

No. This conversion runs entirely inside your browser, so the file never leaves your device. You can confirm it yourself: open the network tab of your browser's developer tools and convert something. You will see the page load, plus the analytics and advertising the site is paid for with — and nothing carrying your file.

Is this a real conversion?

No, and that distinction matters. Every other conversion here re-encodes the same picture. Tracing looks at the grid of colours, guesses where the shapes are and draws new ones — nothing in the output is the input.

Will it work on my photograph?

No. Tracing finds edges between areas of flat colour, and a photograph has none, so the algorithm invents them. Measured on real files, a photograph came out posterised and four times larger than the compressed original.

What about a screenshot with text in it?

The worst case of the four tested. Every anti-aliased letter becomes its own pile of little paths — a screenshot produced an SVG forty times the size of the PNG. If you need the words, the BMP to TXT conversion is the tool, not this one.

How many colours should I choose?

Four for a single-colour mark or a logo, eight for a flat illustration, and only go higher if the result is visibly missing something. Every extra colour is another set of overlapping shapes, so 32 colours produces a file that is much larger and only slightly closer.

Does the size of the bitmap matter?

Less than you would think. Anything over 1,600 pixels on its longest edge is scaled down before tracing, because the output is resolution-independent anyway — a logo traced at 1,600 pixels and one traced at 4,000 render identically at any size.

Can I edit the SVG afterwards?

Yes. The output is paths, so Inkscape, Illustrator and Figma will open it and let you move, recolour and delete shapes. Whether that is pleasant depends on how many shapes the trace produced — a clean logo is a handful, a traced photograph is thousands.

More about these formats

Where these figures come from

The claims this page makes about BMP and SVG are checkable, and these are the documents that settle them.