Scanning
Screen brightness and QR scanning
A displayed QR code is only as readable as the screen is bright. Indoors almost any brightness works; in daylight a 500-nit phone screen competes with sunlight and loses, which is why paper outperforms screens outdoors. Raise brightness manually before showing a code — auto-brightness often dims mid-scan.
Emissive vs reflective: the physics in one paragraph
Paper is read by reflected light: the brighter the environment, the brighter the white background, so contrast is roughly constant from dim room to blazing sun. A screen is emissive: its white is fixed by the panel — typically 500–800 nits sustained on phones — while the ambient light climbing around it washes the panel's black upward. Indoors that contest is no contest. Outdoors, direct sun delivers on the order of 100,000 lux, and a sunlit sheet of paper simply outshines any phone screen. That is the whole reason boarding passes scan flawlessly in the terminal and struggle at the open-air gate.
Practical consequence: for codes that must scan outdoors in daylight, print wins. Screens are for indoor and evening use, or for shade.
Auto-brightness sabotage
The most common failure is not sunlight but the phone dimming itself at the moment of truth. The sequence: you open the ticket, queue for a minute, the screen dims on inactivity or auto-brightness adapts to a dark venue — and the reader meets a grey ghost of the code. Fixes on the showing side:
- Tap the screen just before presenting to reset the dim timer.
- Drag brightness to maximum manually for the few seconds of the scan.
- Disable battery-saver dimming if you will present codes repeatedly.
Apple understood this: iOS boosts screen brightness automatically when a Wallet pass is displayed. If you build an app or page that displays codes — tickets, loyalty, payment — copy the pattern: force maximum brightness while the code is visible, then restore. On the web you cannot control brightness, so say it in the UI: "turn your brightness up".
Too bright is also a thing
In a genuinely dark venue — a club door, a dim foyer — a full-white screen at maximum nits blooms in the reader's camera: the sensor exposes for the glowing white and the glow bleeds across module edges. Readers mostly adapt within a second, but if scans keep failing in the dark, dimming the phone slightly is the counter-intuitive fix. Screens scan best when their brightness is plausible for the room.
The rest of the displayed-code checklist
Brightness is necessary, not sufficient. The other rules for on-screen codes:
- Dark modules on a white tile, always — dark-mode themes that invert the code break readers, as covered in QR codes in a dark-mode website.
- Size for the scan distance — a code on a lobby TV obeys the same distance limits as print; the TV sizing page has the numbers.
- Leave it up long enough — timing rules in minimum on-screen duration.
- Expect moiré when a camera reads a screen — mitigations in scanning a code off a monitor.
- Consider e-ink for permanent displayed codes — reflective like paper, sun-readable, covered in scanning QR codes on e-ink.
Before shipping any screen-displayed code, confirm the artwork decodes cleanly with the validator — brightness problems are hard enough without a marginal code underneath them.
FAQ
Why does my QR ticket fail to scan in sunlight?
Phone screens emit a fixed brightness — typically 500–800 nits — while direct sun is orders of magnitude brighter, washing out the panel's contrast. Shade the screen with your hand and turn brightness to maximum, or use a printed copy for outdoor scanning.
Why did the code scan fail after I queued for a while?
Your phone dimmed itself — the inactivity timer or auto-brightness in a dark venue. Tap the screen to wake it fully and drag brightness up just before presenting the code.
Do brighter screens always scan better?
Up to a point. In daylight, more brightness always helps. In a very dark room, a maximum-brightness white screen can bloom in the reader's camera and blur module edges — there, dimming slightly actually improves the scan.
Why does iOS make the screen bright for Wallet passes?
Because Apple identified exactly this failure: passes were failing at gates on dimmed screens. iOS temporarily boosts brightness whenever a pass is displayed. Apps that show tickets or payment codes should copy the pattern.
Try it — free, no signup
Related
- Scanning a QR code off a monitor — Why photographing a screen produces moiré that breaks QR scans, the fixes in order — enlarge, back off, tilt — and the dark-mode inversion trap.
- Scanning QR codes on e-ink displays — E-ink scans like paper — reflective, glare-free, sun-readable — with a 15:1 contrast ratio that clears the bar. The catches: light needed, refresh ghosting.
- QR scanning in low light — Why QR codes fail in dim rooms — longer exposures turn shake into blur — and what helps: light, bracing, torch technique on gloss, and bigger modules.
- Minimum on-screen duration for a QR code — A primed viewer needs 8–12 seconds to unlock, aim, focus and decode. Show codes for at least 15–20 seconds — or keep them persistent in a corner.