Scanning
QR scanning through glass and screens
Glass adds a reflecting surface between camera and code, and screens add a pixel grid that causes moiré. Both defeat scanning when the reflection or interference lands on the code. Tilt the phone 10–15° off perpendicular to move reflections away, get closer, and shade the glass if you can.
What a pane of glass actually does
Every air–glass boundary reflects roughly 4% of the light hitting it square-on, and a pane has two boundaries. Eight percent sounds harmless until you remember what is being reflected: the bright street behind you, the sky, your own phone, and, worst of all, your torch. When the phone is held perpendicular to the glass, its own reflection lands exactly on the code it is trying to read, superimposing a ghost image over the modules.
That is the core failure: not the glass dimming the code, but the glass adding a second image on top of it. A decoder thresholding luminance cannot separate the two.
The technique: tilt, close, shade
- Tilt the phone 10–15° off perpendicular. Specular reflections obey angle-in-equals-angle-out, so a small tilt moves your reflection (and the torch's hotspot) off the code while costing almost nothing in perspective, well within the angle tolerance of any decoder.
- Get closer. The nearer the code, the more it dominates the frame relative to reflected scenery, and the more pixels each module gets.
- Shade the glass with your free hand or your body, killing the brightest reflections at the source. Night-time shop windows often scan better than daytime ones for exactly this reason.
- Torch off first, on second. Behind glass the torch is usually the problem; only add it back, angled, if the code is genuinely dark.
Shop windows and vitrines
For shop windows, the design-side fix beats any scanning technique: put the code on the glass (a sticker or vinyl facing out) rather than on paper behind it. On the glass there is no air gap, so there is no second surface between camera and code to reflect.
Museum vitrines and display cases add two complications: the lighting is designed to reflect attractively off the case, and visitors cannot shade or touch it. Codes for museums belong on the case edge or a label rail outside the glass, not on the artefact card inside it. Where inside is unavoidable, print larger than the distance rule demands, glass always consumes margin.
Double glazing and coated glass
Modern insulated windows are two panes, hence four reflecting surfaces, producing pairs of ghost reflections slightly offset from each other. Low-emissivity coatings add a faint tint that costs contrast. Scanning a code through a double-glazed office window from outside is therefore noticeably harder than through single glass: expect to need the tilt-and-shade routine, and expect failures in bright sun. If a code is meant to be read through double glazing, oversize it (50% bigger is a reasonable starting margin), and verify a print test with the validator before committing, using the size calculator for the baseline.
When there is a screen behind the glass
A code displayed on a screen behind glass (a lobby TV behind a window, a kiosk under protective glass) stacks this page's problems on top of a different set: the display's own pixel grid interferes with the camera sensor and produces moiré banding. That mechanism, and its fixes, are covered in scanning a QR code off a monitor. The short version stays the same: closer, tilted, and brighter.
FAQ
Why will a QR code not scan through a window?
The glass reflects the scene behind you (and your own phone and torch) directly onto the code, superimposing a ghost image the decoder cannot separate from the modules. Tilt the phone slightly, move closer, and shade the glass to remove the reflections.
How do I stop my reflection blocking the code?
Tilt the phone 10–15 degrees off perpendicular. Reflections leave at the same angle they arrive, so a small tilt moves your reflection off the code while staying well inside the decoder's perspective tolerance.
Should I use the torch when scanning through glass?
Try without it first. Square-on, the torch reflects a blown-out hotspot straight back onto the code. If the code is genuinely too dark, turn the torch on but keep the phone angled so the hotspot lands off the code.
Why is double glazing worse than single glass?
Two panes mean four reflecting surfaces, which create offset pairs of ghost reflections, and low-emissivity coatings add a slight tint. Codes meant to be read through double glazing should be printed noticeably larger than the distance rule alone requires.
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.
- 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.
- QR scanning at an angle, How far off-axis a QR code still scans (about 30–45°) why steeper angles fail, and where to mount codes so nobody has to scan at an angle at all.
- QR codes on glossy surfaces: glare and how to beat it, Why gloss finishes stop QR scans at exactly the angle people hold their phones, the flash-hotspot failure, and why matt laminate wins.