QR Code Free Forever QR Code Free Forever Create QR codes. 100% free. Forever. Make a QR code

Home · Guides

PNG vs SVG QR Codes

A PNG is a photograph of your code. An SVG is the instructions for drawing it. That one difference decides which file belongs where, and it is the most common round-trip in any print job involving a QR code.

The short answer

Why it matters on paper

A PNG stores a fixed grid of pixels. Enlarge it and there is no extra detail available, so the software interpolates — invents plausible intermediate values — and the module edges go soft. Soft edges are precisely the thing a scanner has trouble with, because the whole decoding process starts by deciding, for each sampled point, whether it is dark or light.

A blurry enlarged PNG QR code beside a sharp vector version
A small PNG scaled up the way a layout program scales it, next to the same code drawn from its geometry. The interpolated version on the left is what arrives at the printer when the wrong file is supplied.

An SVG stores the shapes: a list of rectangles with exact coordinates. Print it at 2 cm or paint it on the side of a building and the edges stay perfectly crisp, because they are recalculated at whatever size is asked for.

There is a second, quieter advantage. A vector code is a handful of kilobytes regardless of the printed size, so it does not slow a layout file down and cannot be accidentally downsampled by an export preset.

The other formats you may be asked for

FormatTypeUse it forWatch out for
SVGVectorWeb, and most modern print workflowsVery old RIPs may not accept it
PDFVectorWhat most print shops prefer to receiveMake sure the code stays vector on export
EPSVectorOlder print workflows that ask for itBeing asked for it is a sign of an old setup
PNGRasterScreens, and print if generated at final sizeNever enlarge afterwards
JPEGRasterNothingCompression artefacts on every edge
3MF / STL3D meshPrinting the code as an objectSee the 3D printing guide

If a designer asks for "the vector", they mean the SVG or the PDF. Sending a PNG and being asked again is the single most common round-trip in QR print jobs, and it usually costs a day.

One trap when exporting from design software: a PDF can contain a raster image. If you place a PNG in a layout and export to PDF, the result is a vector file wrapping a bitmap, with all the bitmap's limitations. Place the SVG, not the PNG.

Why never JPEG

JPEG compresses by discarding high-frequency detail — the fine, abrupt changes the eye is least sensitive to in a photograph. A QR code is nothing but abrupt changes. The result is ringing and haloing around every module boundary, worst exactly where contrast is highest, which is everywhere.

Curiously, our own testing found that decoders cope with heavy JPEG compression better than expected: a code at five pixels per module still read at quality 10. But that is a controlled test on a clean image, and it measures the wrong thing — in the real world the JPEG artefacts arrive on top of every other imperfection, and they arrive for no benefit at all, since a QR code as PNG is smaller than the same code as JPEG anyway.

Sizing a PNG properly

If a bitmap is unavoidable, generate it at the size it will be used. Width in pixels equals millimetres divided by 25.4, times the output resolution.

Printed widthAt 300 dpiAt 600 dpi
20 mm236 px472 px
30 mm354 px709 px
50 mm591 px1,181 px
100 mm1,181 px2,362 px

For screens, the constraint is different: aim for at least five device pixels per module, which our resolution tests found to be the floor for reliable decoding. On a high-density display that means exporting at twice the CSS size. The measurements are in how small a QR code can be.

Written by Manuel Llovet, who builds and maintains QR Code Free Forever. Published 2026-08-31, last checked 2026-09-08. Figures and measurements on this page were produced for this site; the method is described in each caption.

Make this code now

Free, no sign-up, and it never expires. Everything runs in your browser.

Open the generator

Keep reading