Toolvore

SVG to PNG / JPEG

Convert SVG markup or files into raster images.

This tool runs entirely in your browser. Your data is never uploaded, never stored, and never leaves your device.

Rasterises SVG markup into PNG, JPEG or WebP at a scale you choose, which is how vector artwork becomes a fixed-pixel logo or icon for the places that will not render SVG — email clients, older CMSes, app store listings.

How to use it

  1. 1Drop an .svg file in, or paste the markup straight into the SVG box.
  2. 2Choose PNG, JPEG or WebP and set the scale multiplier — 2 by default, up to 10.
  3. 3Press Convert; the output dimensions are printed above the preview, then download.

Example

Input
<svg xmlns="http://www.w3.org/2000/svg" width="100" height="50"><rect width="100" height="50" fill="#4f46e5"/></svg> at scale 2, PNG
Output
200 × 100px — a solid indigo rectangle

Scale multiplies the SVG's own width and height, so choose it for the largest size you will ever display the result at; once it is a raster the sharpness is fixed. Web fonts and images referenced by URL are not fetched while rendering, so convert text to paths and inline any bitmaps first.

What happens to your data

Your markup is parsed and drawn locally: it becomes a blob URL, is painted onto a canvas, and is exported without a single network request. The external resources an SVG links to are not fetched either.

Last updated August 2026

You have a logo as an SVG and the thing in front of you will not take it. An email platform strips the attachment, an app store listing asks for a fixed-pixel icon, an older CMS shows a broken image box. The artwork is not the problem — the destination is, and the fix is a raster copy sized for where it is going.

Decide the largest size it will ever be shown at before you convert, because that is the one thing you cannot revisit. An SVG is drawing instructions, redrawn at whatever size it is asked for; a PNG is a fixed grid of pixels, and stretching it past its own dimensions is guesswork done by whatever displays it. Coming down from a generous export costs nothing; going back up costs sharpness.

Then settle what the format cannot carry: animation, hover states, links and recolouring a shape from CSS all live in the markup, and none of it survives flattening. Anything the file points at rather than contains is a separate risk — a web font named in a style rule, or a bitmap linked by URL, is not fetched while the image is drawn. Convert type to outlines and embed bitmaps first.

The common mistake is converting when you did not have to. Where the destination understands SVG — a modern site, most design tools — keep the vector and let it scale.

How it works

Toolvore parses your markup with the browser's XML parser, refusing anything malformed before drawing starts, then hands the text to an ordinary image element — so the browser's own SVG renderer does the work, the same engine that would draw it on a page. That image is painted onto a canvas sized to the SVG's own width and height multiplied by your scale, then read back out in the format you picked, at a quality of 0.92 for the lossy two. Using an image element has two consequences. External resources are not loaded in that mode, so a web font or a linked bitmap will be missing from the result. And an SVG with no intrinsic size gives the browser nothing to measure, in which case the fallback is 300 × 150 pixels, the default dimensions of a replaced element, rather than the shape you expected. JPEG has no alpha channel, so the canvas is filled with white first; PNG and WebP keep transparency as it was.

Common use cases

  • A logo for an email platform that strips SVG attachments
  • Fixed-pixel app icons and store listing artwork
  • Artwork for a CMS or forum that refuses SVG uploads
  • Social preview images, where SVG is not supported
  • A flattened JPEG for a template that mishandles transparency
  • Raster icons for documentation or a bug report

Frequently asked questions

What size should I export an SVG at?

Work backwards from the largest place it will appear, then allow for high-density screens, where a 200-pixel slot is drawn with 400 or 600 real pixels. The scale is a multiplier of the SVG's own width and height rather than an absolute figure, so a file declared at 100 × 50 comes out at 200 × 100 at scale 2 and 1,000 × 500 at the maximum of 10. The arrows move in half steps between 0.5 and 10. When you need an exact target such as 512 pixels square and no multiplier lands on it, change the width and height in the markup first.

Why does the exported image look blurry or jagged next to the SVG?

Two causes, worth telling apart. If it looks soft, something is displaying it larger than it was exported — the extra pixels are invented at that point, and the only cure is a bigger export. If it looks crisp but the edges are chewed, it was exported small: a diagonal or a curve is approximated by whole pixels, and hairline strokes under a pixel wide either vanish or thicken. Artwork drawn for a poster rarely survives at 32 pixels. Export generously and let whatever displays it shrink the result — the direction that costs nothing.

Should I choose PNG, JPEG or WebP?

PNG for logos, icons and flat colour, which is most of what starts life as SVG: lossless, keeps transparency, compresses solid areas well. JPEG cannot store transparency at all, so anything transparent is composited onto white before the file is written — invisible on a white page, obvious anywhere else. It suits photographic content, which SVG rarely holds. WebP gives a smaller file at similar quality and is widely supported in browsers, though older email clients and desktop applications are patchier — the wrong pick for a file that must open anywhere. Both lossy formats are written at a quality of 0.92, with no slider.

Why did the text in my SVG change font or disappear?

Because text in an SVG is usually a font name rather than a shape. The renderer looks that name up on the machine doing the drawing, and a font referenced from the web is not fetched while an SVG is rendered as an image — so you get a substitute, with different letter widths that shift the layout, or nothing where a missing glyph should be. The fix is upstream: in your vector editor, convert text to outlines or paths before exporting, after which the letters are shapes that render identically everywhere. Keep an editable copy, because outlined text can no longer be retyped.

Why is the output 300 × 150, or some size I did not ask for?

That is the fallback used when the browser cannot measure the file. An SVG whose root element carries no width and height attributes has no intrinsic size, and 300 × 150 is the default size of a replaced element in CSS — so that is what your scale multiplies. The fix is to add explicit width and height to the markup, or a viewBox giving the drawing a coordinate space. A percentage width behaves the same as none at all. If the file cannot be drawn at all, you are told so, with the same advice about width, height and viewBox.

Why did a large export produce nothing at all?

Browsers cap how big a canvas may be, the cap differs between them, and no API reports it — Safari on iOS is the tightest in common use, around 4096 by 4096 pixels. Past the limit the drawing surface raises no error; it quietly returns an empty result, which is how other converters hand you a download that is a broken image. The result is checked rather than assumed, so an export beyond the cap says so, gives the dimensions it attempted, and suggests a lower scale to retry at. Memory is the other ceiling, and it can stop a tab first.

Is my SVG uploaded anywhere?

No. A dropped file is read by the browser itself, the markup is drawn and encoded on your own machine, and the finished image reaches the download link as data the page already holds. Nothing goes out behind the Convert button. One consequence is worth spelling out for anyone converting a client's artwork: because external references are not fetched, an SVG carrying a link to a remote image or font causes no call to that server, so nobody learns the file was opened. That same silence is why those resources are missing from the output.

Can I convert a PNG back into an SVG?

Not by reversing this. Going from vector to pixels discards the shapes, and nothing in the pixels records where an outline was. What exists is tracing, which guesses at edges of similar colour and draws paths around them — reasonable for a flat two-colour logo, poor for anything with soft edges, and hopeless for a photograph, where it produces thousands of blobs in a file larger than the original. If you need a vector, hunt for the original artwork: an .ai, .eps, .pdf or .svg from whoever made it beats any trace of a screenshot.