Converter · No upload

Convert SVG to PNG on your device

Turn SVG drawings into PNG images at the declared size or 2×, 3× or 4× it, with transparency kept.

Read here — Statusidle Files— OutputPNG Network since file read—

A static raster snapshot, not vectors, at the chosen scale (default 1×), with alpha kept. Rows show pixels, reduced scale and recognized SMIL animation, not CSS-only animation. External references the check detects, scripts, <foreignObject>, compressed SVGs and files with no readable size are refused by name. Fonts the device lacks are substituted. Takes .svg.

How this converter works

An SVG describes shapes, and a PNG is a fixed grid of pixels, so converting means drawing the SVG at one chosen size. This page reads the SVG text, works out its size from the width and height (in any supported unit) or the viewBox, and writes that size in pixels onto a working copy, since a browser drawing an unsized SVG falls back to 300 × 150. Your browser then draws the copy onto a canvas at the scale you picked. Shapes are redrawn at the new resolution, so edges stay sharp at 4×, but an embedded photo gains no detail. The canvas is saved as a PNG with its transparency, and the row shows the pixel size that came out. None of this uploads your file.

To watch the network yourself on a desktop browser, open developer tools (often F12), select Network and convert a file. A browser drawing an SVG as an image runs no scripts and fetches nothing from outside the file, including images, fonts and stylesheets at web addresses or file paths. A drawing that needs one of those comes out with a placeholder, a blank area or a substitute font, and no request appears, so a Network list showing zero requests can still hide an incomplete drawing. That is why this page refuses a file with an external reference it detects, and names the reference on the row. Script elements are refused too. HTML inside a foreignObject is refused because the browser then stops the page from reading back the drawn pixels. The methodology page explains the other network checks.

The PNG has one fixed size, so keep the SVG if you need to draw it again at another size, or use SVG to PDF for a page. An animated SVG becomes one still picture. The row flags SMIL animation (animate, animateTransform, animateMotion and set); CSS animation is not flagged. In a Chrome test, a rectangle animating from red to blue came out red; which moment of a CSS animation gets captured was not tested. The canvas is capped at 268,435,456 pixels and 32,767 pixels a side; in Chrome’s tests, a canvas past the browser’s own limit came back with no image and no error. If your scale would go past the cap, the page uses the largest scale that fits and the row says so, and an SVG too big to fit at 1× is refused. Memory or browser limits can still stop a smaller render. The PNG keeps transparency, which SVG to JPG cannot.

Frequently asked questions

Is my SVG uploaded anywhere?
No. The SVG is read, drawn and saved as a PNG in this browser. The network meter counts resource-timing entries from the first file read, so it leaves out earlier page and code loading and some other network activity. Once the page has loaded, converting a file while offline checks that the conversion runs locally.
What size will the PNG be?
The size the SVG declares, at 96 pixels per inch, times the scale you pick. A 210 × 297 mm drawing becomes 794 × 1123 pixels at 1×. A drawing sized 200 × 100 in CSS pixels becomes 200 × 100 at 1× or 800 × 400 at 4×. A file with only a viewBox is sized at one user unit per pixel, and the row says so. If the pixel cap lowers your scale, the row tells you.
Is transparency kept?
Yes. The PNG keeps transparency, and no background is painted under the drawing. SVG to JPG flattens transparency onto white. The canvas can still change the colour values of faint, nearly transparent pixels.
Why does my text look different?
Your browser draws text with the fonts on your device, and an SVG drawn as an image cannot fetch a font. If the SVG names a font you do not have, the browser uses another without a warning; in a test, a file naming a missing font rendered the same as one using the default font. The same SVG can therefore look different on another device. If the letter shapes matter, convert text to paths in your drawing program first.
Why was my file refused?
External images, fonts, stylesheets, file paths and CSS @import references are refused by name when the preflight check finds them. The check can miss some CSS escapes and other reference forms, so look over the output for missing pieces. A link wrapped around a shape is fine. Script elements and HTML inside foreignObject are refused too, including the HTML labels in draw.io and diagrams.net exports; export labels as paths or plain SVG text. Gzip-compressed SVGs and malformed XML are refused by name, and so is a file whose size cannot be read from its width, height or viewBox. The size check reads the viewBox without validating every value in it, and the page does not decompress files or guess a size.

Related tools