Raster for screens, vector for print — plus the pixel sizes that stop a printed code coming out soft.
Download SVG for anything that will be printed or resized. Download PNG for anything that stays on a screen — email, a slide, a social post, a web page. Print gets vector, screens get raster.
Both files hold the same QR code and scan identically at the size you made them. The only difference is how the image is stored, which decides what happens when someone makes it bigger.
If you are not sure, take both. Neither costs anything here, and having the SVG ready when the printer asks for vector saves an afternoon.
A PNG is a raster image: a fixed grid of pixels. A 512 x 512 px PNG holds 262,144 pixels of information and will never hold more. Scale it up to poster size and the software has to invent the missing detail, so the edge of every module goes soft and the code becomes harder to read in poor light or at an angle.
An SVG is a vector image: a set of instructions describing the squares rather than a picture of them. The renderer draws them fresh at whatever size is requested, so the edges stay exactly as crisp on a billboard as on a business card. The file is usually smaller too, because a QR code is only a few hundred shapes.
The catch is support. Every phone, browser, email client and word processor handles PNG. SVG is reliable in browsers and in design software such as Illustrator, InDesign and Affinity, but some office suites render it badly and most social platforms reject it outright. That is the whole trade-off.
One detail if you added a logo: the QR pattern stays vector in the SVG, but a logo you supplied as a PNG or JPG is still a raster image inside it. Start from the largest version of the logo you have.
When a print shop asks for print-ready artwork, the SVG is the answer. Send a PNG only if their system will not take vector, and send it at the size worked out below.
| Where it goes | Format | Export size |
|---|---|---|
| Web page or email signature | PNG | 300–600 px |
| Slide deck | PNG | 600–1000 px |
| Instagram or other social | PNG | 1000–1080 px |
| Business card, 2 cm code | SVG | PNG fallback: 250 px |
| Menu or table tent, 4 cm code | SVG | PNG fallback: 500 px |
| Flyer or A4 poster, 5 cm code | SVG | PNG fallback: 600 px |
| Packaging and labels | SVG | Vector — printers will ask for it |
| Large-format poster or banner | SVG | Vector, no pixel size needed |
DPI — dots per inch — is how many ink dots a press lays down across each inch of paper. 300 DPI is the standard for anything held in the hand, because at normal reading distance the eye stops resolving individual dots somewhere around that density. Below roughly 150 DPI, edges look visibly soft.
For a QR code, soft edges are more than cosmetic. A scanner has to decide whether each module is light or dark, and blurred boundaries produce more decoding errors — most noticeably in dim light, at an angle, or on an older phone camera. A sharp code scans faster and from further away.
DPI applies only to raster files. An SVG has no DPI because it has no pixels; the printer's software renders it at whatever resolution the press runs at. That is precisely why print shops keep asking for vector.
The maths is one line: pixels = printed width in inches x 300. A 1-inch (2.5 cm) code needs a 300 x 300 px PNG, and a 2-inch (5 cm) code needs 600 x 600 px. Working in centimetres, divide by 2.54 first — a 4 cm code is 1.57 in, so 1.57 x 300 = 472 px, which you round up to 500.
Rounding the export size up costs nothing. Rounding it down costs a reprint.
Do not crop the quiet zone. A QR code needs a blank margin of four modules on all four sides, and scanners use it to find the code's edges. Trimming it to squeeze the code into a layout is the most common reason a technically perfect code will not scan.
Do not save a QR code as JPG. JPG compression puts faint halos around high-contrast edges, which is all a QR code is made of. Use PNG when you need a raster file, and never re-export a code that has already been through JPG compression.
QR Code Agent exports PNG and SVG with no account, no watermark and no size limit. The image is generated in your browser, so the file is built on your own device and nothing is uploaded.
The codes are static, which means the destination is encoded in the pattern and the file you download is final — worth knowing before 5,000 labels go to print. Test the exported file on two or three different phones before the run, not after it.
Free, no sign-up, and your code never expires.
Got your code? ☕ Buy me a coffee — it keeps this tool free for everyone.