Convert WebP to SVG

Converting a WebP to SVG is tracing rather than converting: a WebP holds a grid of colours, so the tracer finds the edges between flat areas and draws outlines around them. It works on the flat marks people usually save off a web page, and it works better when the WebP was lossless than when it was lossy.

  • Where it runs In your browser. The file is never uploaded.
  • Rebuilt SVG works differently from a WebP, 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.

Before tracing the WebP, look for the site’s own SVG

The WebP on this page nearly always came from a website, and websites that serve WebP are usually built by someone who also has the vector. Three places are worth checking and all three take under a minute: request /favicon.svg on the domain, open the page source and search for ".svg", or watch the network panel while the page loads and look at what it fetched.

A great many sites ship their logo as inline SVG in the HTML, which means the actual artwork — real curves, real text, named shapes — is sitting in the markup and can be copied straight into a file. A traced copy is a reconstruction with outlines where letters were and fitted segments where curves were. When the original is one view-source away, taking it is strictly better than approximating it, and this page is for when it is not.

An animated WebP will not trace at all

WebP is two formats sharing an extension: a still image and an animation, and plenty of the little looping graphics on the web are the second kind. The decoder used here is libwebp’s still-image path with no demuxer attached, so an animated file is not partially converted — it is refused, and you get a readable "could not read this file" message rather than a silent first frame.

That is the better failure of the two available, and it is deliberate elsewhere on the site too. Both a lossy and a lossless animation were tested against the decoder and both were rejected. If you need the motion, WebP to GIF or WebP to MP4 keeps it. If you only wanted one frame to trace, open the animation in a browser, pause it, screenshot the frame you want and trace the screenshot — bearing in mind that a screenshot is itself a poor tracing input if it contains text.

Whether the WebP was lossy changes what the tracer sees

WebP can be encoded either way and the extension does not tell you which. A lossless WebP is a PNG-equivalent: the edges in the file are the edges the designer drew, and it traces about as cleanly as an export. A lossy WebP has been through a transform that smooths flat areas and rings along hard boundaries, exactly as JPEG does, and those ripples are structure as far as the tracer is concerned.

The symptom is a logo whose outlines look slightly quilted, with small satellite shapes hugging every edge that should have been crisp. Smooth detail removes most of them because they are small, and a lower colour count removes more because there are fewer palette entries for the ripple to occupy. Neither recovers the original edge. If the site also serves a PNG of the same asset — many do, as a fallback in a `<picture>` element — that PNG is the better file to trace.

The WebP is only as large as the page needed it

Sites serve images at the size the layout uses, often through a resizing service, and WebP exists precisely so that size can be as small as possible. A header logo delivered at 240 or 320 pixels wide is normal, and that is all the information the tracer has to fit outlines to.

The consequence is that corners round off and thin strokes wobble, and no setting on this page fixes it, because the fix is more pixels. Before converting, try the obvious things: request the same file with a larger width parameter in the URL, look for an @2x or @3x version, or check whether the site has a press or brand page — organisations that publish one almost always publish an SVG or an EPS there. Anything longer than 1,600 pixels is scaled back down before tracing, so there is no benefit past that, but the gap between 320 and 1,600 is real and visible.

Colour count for a logo saved as WebP

Four for a single-colour or two-colour mark, eight for a flat illustration or a badge with a few fills, and higher only when something is visibly gone. Eight is the default and is a reasonable first attempt for most things saved off a page.

On a lossy WebP the argument for staying low is stronger than usual. Every extra palette entry gives the quantiser somewhere to put the compression ripple, so raising the count from eight to sixteen frequently adds shapes that are made entirely of artefact. Try four first on anything that looks like a logo; if the mark survives it, that is both the smallest file and the cleanest set of paths to tidy up afterwards.

Detail, and the specks a compressed WebP leaves behind

The detail setting decides how closely each outline follows the pixel grid and how small a shape must be before it is discarded. Smooth fits loosely and drops anything under sixteen pixels; sharp follows the grid closely and keeps shapes down to two pixels; balanced is the default between them.

Smooth is the right default for this page, because the specks a downloaded WebP produces are compression artefacts rather than design. Sharp is worth trying only on a lossless WebP of a pixel-precise icon, where a two-pixel feature is genuine. The tracer never blurs the image before working on it — the blur radius is fixed at zero — because pre-blurring reduces the speck count by destroying the hard edges that were the reason to trace a logo in the first place.

What you get back, and what it is not

A stack of filled paths, each with a solid fill and a matching one-pixel stroke, plus a full-canvas path at zero opacity where the WebP was transparent. No groups, no names, no text elements, no gradients. A wordmark comes back as letter-shaped outlines, so it can never be re-set in the original typeface; a gradient comes back as bands.

For a slide, a large print, a cutter or a placeholder that has stopped going soft, that is usually enough. As a brand asset it is not, and a designer will identify it as a trace on sight. Where the mark is going back into any system that will be looked at closely, treat the SVG as an accurate template to redraw over: most logos are a few geometric shapes and a typeface, and rebuilding them from a good trace is faster than cleaning one up.

Whose logo it is, which is not a technical question

This page gets used for two things that look identical to the converter and are not the same at all. Recovering your own artwork — the mark from a site you own, or one an agency built and no longer supports — is the ordinary case and nobody has a problem with it.

The other case is rebuilding somebody else’s brand asset from their website, and tracing it does not change who owns it. That is worth settling before the file goes into a design rather than after. It is also the reason this conversion runs entirely in your browser: whatever the file is, it does not leave the machine, and there is no server-side copy of a logo somebody may not have wanted shared.

Where a downloaded WebP should go instead of SVG

If the image is a photograph, tracing will posterise it and enlarge it; WebP to JPG or WebP to PNG is what that situation actually needs, and WebP to JPG is the usual answer when something downstream simply refuses the format. If it is a screenshot with text in it, tracing is the worst possible move — WebP to TXT reads the words instead.

If the goal is a favicon, WebP to ICO produces the file directly and does not need a vector step first. And if the goal was just to have the picture in something ordinary software opens, WebP to PNG keeps every pixel with nothing lost. Tracing earns its place only when the artwork is flat and genuinely has to scale or has to be cut.

How the WebP is decoded and traced without uploading it

Decoding, scaling and tracing all happen in the tab. The WebP decoder is libwebp compiled to WebAssembly and fetched only when a WebP is dropped, so nothing about the image is sent anywhere and there is no account or daily allowance in the way.

The tracing itself is imagetracerjs: 46 KB of pure JavaScript under the Unlicense. It is not the strongest tracer available — potrace and autotrace fit better curves and are GPL, and VTracer is better than both but ships a browser build with no licence declared at all, which this project treats as blocked rather than permissive. On a flat mark the difference between them is small, and on a lossy WebP the compression matters more than the tracer does.

How to trace a downloaded WebP into an SVG

  1. Check the site for a real SVG first — /favicon.svg, the page source, or a brand page.
  2. If there is none, drop the WebP here and start at four or eight colours with smooth detail.
  3. Compare the two file sizes shown, then delete the transparent background path before using the SVG.

WebP against SVG: a web-delivery grid against drawn outlines

WebP compared with SVG
WebPSVG
Full nameWebP ImageScalable Vector Graphics
File extension.webp.svg
Media typeimage/webpimage/svg+xml
CompressionEither, depending on the settingUncompressed
First published20102001
Published byGoogleW3C
SpecificationRFC 9649SVG 1.1
LicensingOpen standardOpen standard
Standing todayCurrentCurrent
Bit depth8
Colour it can describeRGB, YCbCrRGB
Largest image16,383 px per side
Opens in a browserEvery browserEvery browser
Considered insteadAVIF, JPG, PNGPNG, PDF

What survives

Transparency survives. Both WebP and SVG store an alpha channel, so a cut-out stays cut out and nothing is filled in behind it.

Animation survives. WebP and SVG both hold multiple frames, so the result moves rather than freezing on the first one.

What the target format adds

SVG is a working format and WebP 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 supports layers. A WebP arrives already flattened, so the result has one layer — the structure has to be rebuilt by hand if it is needed.

Opening the result

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

What each format is for

WebP is Google's format, published in 2010. 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.

WebP to SVG: downloads, animation and edge quality

Are my WebP 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.

My animated WebP will not convert. Why?

Because the decoder here reads still WebP only. An animated file is rejected outright rather than converted to its first frame, so you get an error instead of a wrong result. Convert the animation to GIF or MP4 if you need the motion, or take a screenshot of the frame you want and trace that.

Can I get the original SVG from the website instead?

Often, and it is worth two minutes. Try /favicon.svg on the domain, open the page source and search for ".svg", or look at the network panel while the page loads. Many sites ship the logo as inline SVG in the HTML, which you can copy straight out. That is the real artwork rather than a reconstruction of it.

The traced logo has fuzzy edges. What went wrong?

Most likely the WebP was lossy. Lossy WebP smooths and ripples along hard edges to save bytes, and the tracer outlines that ripple as if it were part of the design. A lossless WebP — what a site exports for a flat logo if it is being careful — traces far more cleanly.

Can I get a bigger version by tracing?

You can scale the result to any size, which is the point, but no detail appears that was not in the download. If the site served a 320-pixel logo, the outlines are fitted to 320 pixels of information. Check whether the same image is available at @2x or in a press kit before converting.

Does the transparent background survive?

Yes. WebP carries an alpha channel and the tracer reads it, so the transparent area becomes a path with an opacity of zero and the artwork sits on top of it. That invisible path is still in the file and is usually the first thing to delete in Inkscape.

Am I allowed to do this with someone else’s logo?

That is a legal question rather than a technical one, and it is worth asking before you use the result. Tracing a mark does not make it yours. Recovering your own artwork from your own old site is the common and uncontroversial case; rebuilding a competitor’s brand asset is not.

More about these formats

Where these figures come from

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