QR Art Generator
Customize QR colors, add a logo, and pick rounded or dotted styles.
Why Branded QR Codes Fail to Scan — and How to Prevent It
A marketing agency delivers branded QR codes for a product launch campaign. The codes have the company's colors (dark teal on a light gray background), rounded dots, and the logo in the center. They look polished in the mockup. On print day, 30% of scans fail on older Android devices. The agency scrambles to diagnose the problem the night before the campaign goes live.
Customized QR codes introduce three variables that affect scan reliability: contrast ratio, logo size relative to the error correction budget, and dot shape compatibility with scanner algorithms. Understanding each before finalizing the design prevents last-minute failures.
The Error Correction Mechanism That Makes Logo Overlay Possible
QR codes use Reed-Solomon error correction — the same mathematical technique used in CDs, DVDs, and deep-space communications to recover from data corruption. The code contains redundant codewords that allow reconstruction of damaged or missing data up to a maximum percentage of total module count.
The four error correction levels specify the recovery capacity:
- Level L: reconstructs up to 7% module loss. No room for any obstruction.
- Level M: 15% recovery. Barely covers minor print damage; no logo.
- Level Q: 25% recovery. Can accommodate a small logo at the center, but margins are tight.
- Level H: 30% recovery. This is the required level for any logo overlay. A logo covering up to approximately 20% of the code area consumes the entire H-level recovery budget, leaving no tolerance for additional damage.
The implication: when you add a logo to a QR art code, you are deliberately "destroying" some modules and relying on Reed-Solomon to reconstruct the missing data. At level H, this works reliably up to the 20% area limit. Any logo larger than 20% — or any additional damage from poor printing or physical wear — exhausts the error correction budget and the code becomes unscannable.
Contrast Ratio: The Physics of Scanner Detection
QR scanner algorithms detect modules by measuring luminance contrast: the difference in brightness between dark modules and the background. The QR standard specifies a minimum Print Contrast Signal (PCS) of 0.75, where PCS = (Rmax − Rmin) / Rmax (reflectance of light and dark areas). In practice, this means the dark foreground must be significantly darker than the background — black on white achieves a PCS near 1.0 (maximum); dark teal on light gray might achieve 0.6–0.7, which older or lower-quality scanners may fail to detect.
Specific color combination problems:
- Inverted (light on dark background): most phone cameras and QR libraries default to detecting dark-on-light. Inverted codes may scan on some devices but fail on others. Avoid inverted color schemes.
- Similar luminance colors: dark blue on dark red may look high-contrast by hue but have nearly identical luminance values, making detection fail. Test luminance contrast, not just color contrast.
- Low contrast modules on the finder patterns: the three finder patterns (corner squares) must be clearly detectable — scanners locate them first. If your color scheme reduces contrast in the corners, the scanner cannot orient the code regardless of how readable the data modules are.
Dot Styles and Scanner Compatibility
The QR standard specifies square modules. Rounded, dotted, and custom-shaped modules are not part of the specification and are read on a best-effort basis by scanner implementations. Newer smartphone camera apps (iOS 11+, Android 9+) handle rounded modules reliably. Legacy standalone barcode scanners, industrial handheld scanners, and kiosk readers may struggle with non-square modules. For codes that must work on industrial or legacy scanning equipment, use square modules. For consumer-facing codes scanned only by smartphone cameras, rounded and dotted styles are reliably supported.
How to Use This Tool
- Enter the URL or text content to encode.
- Set error correction to H (30%) before adding any logo.
- Choose foreground and background colors — verify the contrast ratio is high (dark on light).
- Optionally upload a logo: keep it under 20% of the QR area.
- Select a dot style: square for maximum compatibility, rounded or dotted for consumer-facing aesthetics.
- Download as PNG or SVG.
- Test on at least three devices — including an older Android — before approving for print.
▢ FAQ
01 Why does my branded QR scan on my iPhone but fail on older Androids? +
iPhone camera QR detection (since iOS 11) is among the most capable available, with aggressive contrast normalization and perspective correction. Older Android devices use less sophisticated algorithms with stricter contrast requirements. If a code scans on iPhone but fails on older Androids, increase the contrast ratio between foreground and background colors — specifically increase the luminance difference, not just the color difference.
02 How large can my logo be before it breaks scanning? +
At error correction level H (30% recovery), the logo can safely cover up to approximately 20% of the total QR code area. This is the absolute maximum — it consumes the entire error correction budget. Any additional module loss (print damage, low contrast around the logo edge) will cause decode failure. For safety, target 15% or less, especially for printed codes that will experience physical wear.
03 Can I use a transparent or gradient background? +
Transparent backgrounds cause problems when the QR is displayed on a colored surface — if the surface behind is dark, the "white" background becomes dark, reducing contrast. Gradient backgrounds create regions of low contrast where the gradient color approaches the foreground color. Both are scan reliability risks. Use a solid white or very light solid color background for all print QR codes. Transparent backgrounds are acceptable for digital display on consistently light backgrounds.
04 My art QR generates correctly but the downloaded file looks blurry when printed. Why? +
PNG is a raster format at a fixed pixel resolution. Printing a 500×500 pixel PNG at 5cm produces about 100 DPI — below the 300 DPI minimum for sharp barcode print. Download as SVG for print use: SVG is vector-based and renders at full printer resolution regardless of scale. If you must use PNG, generate at the largest available size and verify the resulting DPI meets your printer's specification (print size in inches = pixel width / DPI).