# How to make a high-resolution QR code

> Work out the pixels you need from the print size — centimetres × DPI ÷ 2.54 — and generate at exactly that size; UseQR renders PNGs up to 4096 pixels. A 10 cm code at 300 DPI is 1181 px. Or skip the arithmetic entirely and download SVG, which has no resolution to run out of.

Source: https://useqr.app/docs/how-to/how-to-make-a-high-resolution-qr-code · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## 1. Decide the printed size first

Resolution is meaningless without a physical size. Start from where the code will live and
how far away the scanner stands — the size-by-distance table
or the [size calculator](/size-calculator) gives you the width. Minimum code width is
roughly **scanning distance ÷ 10**.

## 2. Convert size to pixels

For raster output the arithmetic is one line:

```
pixels = centimetres × DPI ÷ 2.54
```

Print work is **300 DPI minimum**. Common results:

| Printed width | 300 DPI | 600 DPI |
|---|---|---|
| 2 cm (close-range floor) | 236 px | 472 px |
| 5 cm (flyer, table tent) | 591 px | 1181 px |
| 10 cm (small poster) | 1181 px | 2362 px |
| 20 cm (poster at 2 m) | 2362 px | 4724 px |
| 30 cm | 3543 px | — |

Whether 600 DPI buys you anything is covered in
[300 vs 600 DPI for QR codes](/docs/print/300-dpi-vs-600-dpi-for-qr); for most jobs 300 is
enough because module edges, not fine detail, are what matter.

## 3. Generate at that size

Set the size in the generator's download options, or pass it to the
[keyless API](/docs/developers/free-qr-code-api-no-key):

```
https://useqr.app/api/v1/qr?data=https://example.com&size=2362&format=png
```

The API renders **64 to 4096 pixels**. The 4096 px ceiling covers **34.5 cm at 300 DPI** —
larger than almost any raster job needs. Beyond that you have left raster territory
anyway.

## 4. Or sidestep the whole question with SVG

Every row of the table above is solved at once by
[downloading SVG instead](/docs/how-to/how-to-make-a-qr-code-svg). A vector file has no
resolution — it rasterises at the output device's native DPI whether that is a 203 DPI
label printer or a 1200 DPI imagesetter. If your layout tool and printer accept SVG or
PDF, that is the format to hand over,
and "high resolution" stops being your problem.

Raster is still the right answer when the destination demands it: screens, Office
documents on older versions, web CMSes that only take PNG, embroidery and engraving
software that traces bitmaps.

## Gotchas

- **Never upscale.** Enlarging a small PNG interpolates pixels and softens every module
  edge — the classic route to a code that is
  [pixelated when enlarged](/docs/troubleshooting/qr-code-pixelated-when-enlarged) and
  [scans on screen but not in print](/docs/troubleshooting/qr-code-scans-on-screen-not-in-print).
  If the file is too small, regenerate at the right size; it costs nothing.
- **Downscaling is nearly as bad** when it is drastic. A 4096 px code squeezed into a
  150 px web slot can alias module edges. Generate close to display size for screens.
- **DPI metadata is not resolution.** A 500 px image "saved at 300 DPI" is still 500
  pixels. Only the pixel count matters; the DPI tag just tells software how big to place
  it.
- **Recompression undoes your work.** Exporting through JPEG or an aggressive optimiser
  blurs edges regardless of pixel count — see
  compression damage.

## Verify at final size

Print a proof at the real dimensions and scan it from the real distance, or upload the
final artwork to the [validator](/validate) to confirm it still decodes after the layout
round-trip.

Generate one now at exactly the size you calculated:
[make a high-resolution QR code](/url?data=https://example.com).

## FAQ

### What resolution should a QR code be for printing?
300 DPI at the final printed size. Convert with pixels = cm × DPI ÷ 2.54: a 5 cm code needs 591 px, a 10 cm code 1181 px. Better still, use SVG and the question disappears.

### How do I make a 4K QR code?
Add size=4096 to the UseQR API URL or set the size in the download options. 4096 px is the raster ceiling and covers about 34.5 cm at 300 DPI.

### Why does my large QR code look blurry?
It was generated small and enlarged afterwards. Scaling a PNG up interpolates pixels and softens module edges. Regenerate at the required pixel size, or switch to SVG.

### Is a higher-resolution QR code easier to scan?
Only up to the point where module edges render cleanly at the printed size. Past 300 DPI the gains are marginal — physical size, contrast and quiet zone matter far more.

## Try it

- https://useqr.app/url
- https://useqr.app/validate
