SVG to PNG/JPG Converter

Drop, paste, or load an SVG from a URL, resize it to exact pixel dimensions, and export it as a PNG or JPG.

Drop an .svg file here, or click to choose one — or just paste/edit the markup below
Rendered preview of the converted image

Resizing and export run entirely in your browser. The one exception: loading an SVG from a URL goes through our server, since a browser can't fetch most third-party URLs directly (see below) — nothing else here is uploaded, logged, or sent to analytics.

How the conversion works

The SVG is drawn into an HTML <canvas> element sized to your chosen output dimensions, then read back as a PNG or JPG image — the same technique browsers use to rasterize vector graphics natively. Because the canvas is created at your target size, the result is a true resize, not a scaled-up screenshot: a 4000×4000 export from a 24×24 icon stays crisp, since the vector paths are re-rendered at the larger size rather than stretched.

PNG vs. JPG

PNG keeps transparency, so an icon or logo with no background stays transparent in the output — the default for this tool. JPG has no alpha channel, so any transparent areas are filled with a background color first (white by default, adjustable); JPG also supports a quality slider that trades file size for compression artifacts, which PNG's lossless encoding doesn't need.

Sizing options

  • Exact dimensions — type a width and/or height in pixels.
  • Lock aspect ratio — editing one dimension recalculates the other from the source SVG's proportions, so you can't accidentally stretch it.
  • Scale presets — 1x/2x/4x/8x buttons multiply the SVG's own intrinsic size (from its width/height or viewBox), the usual way icon exports are specified.

Loading an SVG from a URL

Paste a direct link to an .svg file and click Load to fetch it into the editor. This one step is the exception to "nothing leaves your browser" below: a plain browser request to a random third-party URL is blocked by CORS on most static-asset hosts, which would leave you with an unhelpful "failed to fetch" and no real reason why — so this request goes through DevEquiv's own server instead, which fetches the URL on your behalf and hands the SVG back. That's also what makes the error messages specific: a 404, a page that isn't actually SVG, a response over 5 MB, or a URL that redirects all get reported for what they are, rather than a generic failure.

Only http:// and https:// links are accepted, and the target isn't stored — the SVG passes through to your browser and the request isn't logged. This route also has its own protections against being pointed at internal or private infrastructure, and a per-IP daily limit to keep it from being used as a general-purpose fetch proxy.

Nothing else is uploaded

Outside of fetching a URL you explicitly give it, the tool never touches a server: parsing, resizing, and export all happen locally via the Canvas API. Whatever SVG you drop, paste, or edit stays entirely in your browser. This also means an SVG that references an external image on another server may fail to export cleanly if that server doesn't allow cross-origin image reads; embedding images as data URIs inside the SVG avoids the issue entirely.