SVG to PNG: get a raster copy of a vector logo
This is the easy direction. An SVG is a set of drawing instructions, so turning it into a PNG just means asking a renderer to draw it at a chosen pixel size — nothing has to be guessed, unlike going the other way. The question isn't really "can it be done", it's "what size do I actually need".
The most reliable way: Favicon generator
Every browser can display SVG, but not every browser's canvas can decode an SVG file the same way, so a converter built only on the fastest decoding path can fail silently in some browsers. Favicon generator on this site was built to handle that: it tries the fast path first and falls back to a plain on-page render if a browser can't decode the file directly, so it works across current browsers rather than only the most common one.
- Open Favicon generator and choose your SVG file.
- Tick Transparent background to keep transparency, or pick a background colour.
- Download the ZIP. Inside is
android-chrome-512x512.png— a 512×512 PNG of your artwork — plus the same image at 16, 32, 48, 180 and 192 pixels, already infavicon.icoand a web manifest if you also need a site icon.
If 512 pixels isn't the size you need, open that PNG in Resize image afterwards and enter the exact pixels. Because PNG is lossless, resizing it down loses nothing a second render at the target size wouldn't also lose, and the SVG's sharp edges survive the first render intact.
A quicker path for a one-off image
Convert image format also accepts an SVG file and renders it at its own stated size (the width and height, or viewBox, written in the file) before converting. It's quicker when that size is already what you want, but it relies on a browser's built-in image decoder recognising the file, which is less consistent across browsers for SVG than for JPG or PNG. If it reports it can't open the file, use Favicon generator above instead.
Why the size in the file matters
An SVG without an explicit width/height or a vague viewBox has no natural pixel size, so a renderer has to pick one, often a small default like 300×150. If your PNG comes out an odd or tiny size, open the SVG in a text editor and check for those attributes, or just render through Favicon generator and resize the result to what you need, since that sidesteps the guess entirely.
What stays, what doesn't
- Sharpness: a vector has no fixed resolution, so the PNG is rendered crisp at whatever size you choose — there's no upscaling blur because nothing was ever scaled up.
- Transparency: kept in PNG. Choosing JPG instead would fill transparent areas with a background colour, so pick PNG (or WebP) if the logo needs to sit on anything other than one fixed colour.
- Animation and interactivity: an SVG can contain animation or scripts; a PNG is a single still frame with none of that.
- Editability: the PNG is pixels now, not shapes. Keep the original .svg file if you'll ever need to edit the artwork again.
Then use these tools
Once you have the PNG: crop it to a tighter square, compress it before uploading, or make a full favicon.ico set from it if you haven't already.
Questions
Does this upload my SVG anywhere?
No. Every tool linked here runs in your browser, and each page's security policy blocks connections to a server. There is no sign-up, watermark or limit.
Why did my PNG come out blurry?
A rendered SVG itself can't be blurry — it's drawn fresh at the size you pick. Blur shows up afterwards, if that PNG is later stretched larger in something else. Always render at the biggest size you'll need, then shrink, never enlarge.
Can I get a transparent PNG from an SVG with a background rectangle?
Only if the SVG itself has no opaque background shape. If the logo looks fine on a white page but solid when you tick transparent background, the artwork has a filled rectangle in it, and removing that requires editing the SVG in a vector tool, not this converter.
What if my SVG uses fonts or linked images?
A font that isn't installed on the device rendering it, or an image referenced by a relative path or URL, may not appear, since nothing is uploaded to fetch it. Embedding fonts as paths and images as base64 inside the SVG beforehand avoids this.