SVG to PNG Converter Online
Convert vector SVG files to PNG or JPG at any scale — 1x, 2x, 4x or custom dimensions
Drop your SVG files below — the converter reads the vector data, renders it onto an HTML5 Canvas at your chosen scale, and outputs a sharp PNG or JPG. Auto-detects your SVG's original dimensions. Use 2x for retina screens, 4x for print, or enter an exact pixel width. PNG output preserves transparency. JPG output automatically fills transparent areas with white.
Your Files Never Leave Your Browser
Conversions run locally in your browser using the Canvas API, with Web Workers used when supported. Your image data stays on your device and is never uploaded to any server.
We use Google Analytics and Google AdSense for aggregated traffic stats and contextual ads when consent allows it. Theme and language preferences stay in your browser. We never see, read, or store the images you convert.
Browser-based conversion has trade-offs: large files (>50 MB) may hit memory limits; animated GIF output flattens to a single frame; EXIF metadata is stripped; ICC color profiles may differ across browsers.
> how_to_convert_svg
- Upload SVG filesDrag and drop SVG files into the converter, or click "browse files". The tool auto-detects the SVG's natural dimensions from the viewBox and displays them in the file card. Multiple files supported.
- Choose format and scalePNG (default) preserves full transparency — ideal for icons, logos, UI assets. JPG is smaller but fills transparent areas with white. Scale: 1× for original size, 2× for retina/HiDPI screens, 4× for large-format print, or enter a custom width in pixels.
- Convert and downloadClick "Convert". Each SVG renders in under 1 second. The output dimensions are shown on each result card. Download files individually or as a ZIP archive.
> svg_vs_png_vs_jpg
| Property | SVG (vector) | PNG (raster) | JPG (raster) |
|---|---|---|---|
| Scalability | Infinite — sharp at any size | Fixed resolution | Fixed resolution |
| Transparency | ✓ Full alpha | ✓ Full alpha | ✗ Not supported |
| File size (icons) | Smallest for simple shapes | Medium | Smallest for photos |
| Browser support | All modern browsers | Universal | Universal |
| App / email support | Limited | Universal | Universal |
| Editable in Figma/Illustrator | Yes — full vector editing | Pixels only | Pixels only |
| Use in Word / PowerPoint | Limited (recent versions) | Universal | Universal |
| Best for | Web icons, logos, UI | Icons, UI assets, screenshots | Photos, banners |
The Technical Reality of SVG → PNG
SVG is math; PNG is pixels. Converting from one to the other is a rasterization, not a compression — so for typical icon and logo artwork the PNG ends up much bigger than the SVG, and it grows steeply with the output resolution. We proved it by rendering a real sample vector (sample.svg, 1.1 KB) through the same rasterization pass this tool uses, at 1×, 2×, and 4×. The source SVG never changes size; the PNG explodes.
| Output | Pixel dimensions | File size | Growth vs 1× PNG |
|---|---|---|---|
| Source SVG (vector) | scales to any size | 1.1 KB | — |
| PNG @ 1× | 256 × 256 | 77.9 KB | baseline |
| PNG @ 2× | 512 × 512 | 271.5 KB | ≈ 3.5× |
| PNG @ 4× | 1024 × 1024 | 932.5 KB | ≈ 12× |
Why does doubling the size more than triple the file? A PNG stores pixel data, so doubling the width and height quadruples the pixel count (4× the area, 16× at 4×). Those 4× and 16× figures are the growth in raw pixel count, not in the final file. PNG's lossless DEFLATE compression squeezes flat and gradient regions, so the compressed file grows more slowly: for this artwork the real file growth (≈3.5× and ≈12×) lands a little under the raw pixel-count multiples. The lesson: export only at the pixel size you actually need. If you want something that stays sharp at every size, keep the SVG — converting to PNG is for compatibility (apps, email, Office, anything that won't take vectors), not to save space.
Methodology & honest caveats
The sample SVG was fetched same-origin and run through the same rasterization pass src/js/svg-converter.js uses: loaded into an HTMLImageElement from a Blob URL, drawn onto a <canvas> sized to the natural dimensions × scale, then exported with canvas.toBlob('image/png') — run in headless Chromium. (The proof script sets the 256×256 dimensions directly rather than calling the tool's parseSvgDimensions() parser, but the draw-and-encode path is identical.) Sizes are byte-exact from the returned Blob. The script is in our repository at scripts/svg-proof.mjs. Honest caveats about canvas rasterization: (1) The PNG is fixed-resolution — scale it up later and it pixelates; the SVG does not. (2) For security the browser sandboxes the SVG on canvas: external resources (<image href="https://…">, external CSS, web fonts loaded via <link>) are generally not loaded — embed them as base64/inline to render them. (3) Text renders only if the font is installed locally or embedded in the SVG; otherwise the browser substitutes a fallback. (4) SMIL/CSS animation, transitions, and any scripts are dropped — the PNG is a single static frame. (5) An SVG with no width/height and no viewBox has no intrinsic size; this tool falls back to 512×512 rather than the browser's tiny 300×150 default.