A logo in the centre of a QR code covers data modules — the code still scans only if error correction can rebuild what the logo hides. Our generators default to error correction level H (30% recovery per ISO/IEC 18004) with logos at ~22% of code width. This page publishes the reproducible test protocol behind those defaults: the size matrix, the contrast pairs, and the 6-step method to verify any logo code yourself before bulk printing.
Our generator defaults (the baseline)
Every QRPress generator renders logo-overlay codes at error correction level H — the highest tier, which rebuilds up to ~30% damaged or obscured modules. The default logo scale is ~22% of code width on a light backing pad, leaving recovery headroom for print dot-gain and phone-camera blur.
Uploads accept PNG or JPG up to 2 MB. The logo is composited in the browser; logo file data is not stored by QRPress after generation. Try it on the free QR generator or the vCard generator.
Test matrix: logo size vs outcome
| Logo width | Error correction | Guidance |
|---|---|---|
| Up to ~15% | H | Pass — comfortable margin for print and screens |
| ~22% (default) | H | Pass — verified default; keep dark-on-light contrast |
| ~30% | H | Caution — test-scan on two phones before bulk print |
| Over ~30% | H | Avoid — exceeds comfortable recovery headroom |
| Any logo | Below H | Avoid — lower tiers cannot rebuild logo-covered modules reliably |
How to read this: level H rebuilds ~30% of modules, so a ~22% logo leaves headroom for real-world blur, glare and low ink. Push past ~30% and you spend the entire recovery budget on the logo itself.
Contrast pairs that pass
| Foreground | Background | Guidance |
|---|---|---|
| Black | White | Pass — the reference pair |
| Dark navy / deep green | White | Pass — keep a clear luminance gap |
| Any dark | Light cream | Pass — test-scan under shop lighting |
| White / light on dark | Dark | Avoid — inverted codes fail on most scanner apps |
| Similar tones (grey on beige) | — | Avoid — low luminance gap is the top scan-failure cause |
The logo backing pad must match the background (usually white) so the centre reads as quiet space, not data.
Run the protocol yourself (6 steps)
- Generate the code with logo at ~22% and level H, then download vector SVG.
- Print at the real size on the real stock (minimum 3 x 3 cm for counter cards) with a white quiet zone of 4+ modules.
- Scan with an iPhone Camera app at the expected distance — must resolve first try.
- Scan with one Android camera / Lens app under the actual shop lighting.
- Tilt 15 degrees and re-scan both phones — glare failures show here first.
- Only then bulk-print. Change any variable (stock, size, logo, colours) and repeat from step 2.
What this means for print
Vector SVG stays sharp at any size; large PNG prints blur module edges and eat into the recovery budget. Matte stock beats glossy for glare. For full sizing rules use the print-size calculator and the print-shop guide.
