← All tools

SVG to PNG converter

Render an SVG to a PNG at any size.

How to use the SVG-to-PNG converter

  1. Paste SVG markup into the box, or upload an .svg file — uploads land in the same editable box, so you can tweak the code before rendering. A missing xmlns attribute (the classic reason pasted SVG won't render) is added automatically.
  2. Set the output width and height in pixels (512×512 to start). With Lock aspect on, editing one dimension recalculates the other from the SVG's own proportions.
  3. Untick Lock aspect only if you must force exact dimensions — the drawing is then stretched to fit, which can distort it.
  4. Click Render & download PNG — a preview appears and image.png downloads.
  5. Need more sizes? Change the numbers and render again. Because the source is vector, every size comes out sharp.

Common uses

  • Turn a vector logo into PNGs for places that reject SVG uploads — marketplaces, app stores, chat apps, older CMSs.
  • Export app icons: render a 512 px master PNG, then feed it to the image resizer for the full 16–512 px set.
  • Rasterize diagrams and charts exported from tools like Mermaid, Excalidraw or d3 so they paste cleanly into slides, docs and tickets.
  • Produce a crisp high-resolution PNG (2048 px and up) from a small icon file — hopeless from a raster source, effortless from vector.

Tips & limitations

  • The background stays transparent — nothing is drawn behind your SVG. If you want a solid background, add a full-size <rect> as the first element of the markup.
  • SVGs that reference external resources — linked images, stylesheets or web fonts — won't load them, because browsers render SVG-as-image in isolation. Embed assets as data URIs, or convert text to paths in your design tool first.
  • Text elements render with whatever font the browser finds locally, so custom typography usually falls back to a default face. Outlining text to paths before exporting guarantees the PNG matches your design.
  • Very large outputs are limited by your browser's maximum canvas size and memory — if a huge render fails, step the size down and try again.

How it's built & why it's safe

Your markup is wrapped in a Blob, loaded as an image, drawn onto an HTML Canvas at the exact pixel size you chose, and exported with canvas.toBlob as a PNG. Rendering SVG this way uses the browser's isolated image context, which means scripts inside an SVG never execute and external references are never fetched — a useful safety property. The whole round trip happens on your device; your artwork is never uploaded.

Related tools: Image Converter · Image Resizer · Color Converter

Further reading: PNG, JPG, WebP or HEIC? How to choose an image format

Frequently asked questions

Why convert SVG to PNG at all?

SVG is ideal on the web, but plenty of software still wants raster — app stores, office suites, marketplaces, avatar uploaders. PNG renders identically everywhere and lets you pin an exact pixel size.

Why does my SVG fail to render or come out blank?

The usual culprits are external references: linked images, CSS files or web fonts aren't loaded when a browser renders SVG as an image. Embed those resources in the file, or convert text to outlines, and try again.

Will text in my SVG look right?

Only if it doesn't depend on a custom web font — font references inside the SVG aren't fetched in this rendering mode, so text falls back to a default face. The bulletproof fix is converting text to paths in your design tool before exporting.

Is the PNG background transparent?

Yes, by default — anything your SVG doesn't paint stays fully transparent in the PNG. Add a full-size rect to the markup if you want a solid color behind the artwork.

How large can I render?

As large as your browser can allocate a canvas — thousands of pixels across is normally fine. Because the source is vector, a 2048 px render is exactly as sharp as a 128 px one; if an extreme size fails, step down and retry.

Is my artwork uploaded?

No — parsing, rendering and PNG encoding all run in your browser. And because browsers treat SVG images as inert, any script tags inside the file are ignored, so rendering an SVG you didn't write is safe here.