Scanning
Scanning a QR code off a monitor
Photographing a QR code on a monitor often fails because the camera's sensor grid interferes with the display's pixel grid, producing moiré bands across the modules. Enlarge the code on screen, move the phone back, and tilt it slightly. If the code is on your own screen, screenshot it instead.
Moiré: two grids arguing
A camera photographing a display is one regular grid (the sensor's pixel array) sampling another (the display's subpixel array) at a slightly different scale and rotation. Wherever the two grids beat against each other, the image grows broad light and dark interference bands — moiré — that sweep across the code as you move. To the decoder those bands are phantom stripes of wrong luminance laid over the modules; error correction absorbs a little of it, and then the decode fails or takes seconds instead of milliseconds.
Add the screen's glossy front glass reflecting the room (the mechanism covered in scanning through glass and screens) and you have the two reasons "point my phone at the monitor" is the flakiest common scan.
The fixes, in order of effect
- Enlarge the code on screen. Zoom the page or image until the code is at least 4–5 cm on the glass. Bigger modules span more display pixels, pushing the two grids' frequencies apart and shrinking moiré where it hurts. This one step fixes most cases.
- Move the phone back. Counter-intuitive but effective: at 30–40 cm the display's pixel pitch drops below what the camera resolves, and the moiré fades. The 10:1 rule still applies — a 4 cm code is good to 40 cm.
- Tilt slightly. A 10–15° tilt rotates one grid against the other, shifting the interference pattern off the code, and moves glass reflections away as a bonus.
- Raise the display's brightness and disable any night-shift amber tint — dim, warm screens hand the camera less contrast, as covered in screen brightness and QR scanning.
The dark-mode inversion trap
A separate failure that gets blamed on moiré: the code is displayed light-on-dark. Some sites recolour images in dark mode, some slide templates invert graphics, and some users force-invert everything. Decoders are built for dark modules on a light background; inverted codes fail on many readers even when perfectly sharp. The design answer — keep the code on a white tile whatever the surrounding theme — is in QR codes in a dark-mode website, and the recovery steps are in inverted and unreadable codes.
If it is your own screen, stop photographing it
Photographing a monitor is only ever necessary when the code is on someone else's screen. If it is on yours, a screenshot is a pixel-perfect copy with no moiré, no glare and no blur:
- On the same computer: screenshot, then decode the file in the browser at /scan — nothing installs, and the image never leaves the machine.
- On your phone with the code on the phone: the same-device flow in scanning from a screenshot.
For anyone publishing codes meant to be scanned off screens — slide decks, TVs in a lobby, video calls — the durable fix is generous sizing (the arithmetic is in QR codes on slide decks) and a pre-flight decode check with the validator.
FAQ
Why will my phone not scan a QR code on my computer screen?
Interference between the camera's sensor grid and the display's pixel grid draws moiré bands across the code, and the screen's glass adds reflections. Enlarge the code on screen, hold the phone 30–40 cm back, and tilt it a few degrees.
What is the fastest fix for moiré when scanning a screen?
Make the code bigger. Zoom the page until the code is at least 4–5 cm across on the glass — larger modules separate the two grids' spatial frequencies and the banding mostly disappears. Backing away has a similar effect.
Why does a dark-mode QR code fail to scan?
Because it is inverted. Decoders expect dark modules on a light background, and light-on-dark codes fail on many readers even when sharp. Keep the code on a white tile regardless of the page theme.
Should I photograph my own screen to scan a code?
No — screenshot it. A screenshot is an exact copy of the pixels with no moiré, glare or blur, and a browser-based decoder reads it instantly. Photographing a screen is only for codes on displays you do not control.
Try it — free, no signup
Related
- Screen brightness and QR scanning — Displayed QR codes live and die by brightness — why paper beats screens outdoors, why auto-brightness sabotages scans, and the wallet-pass pattern to copy.
- QR scanning through glass and screens — Why glass between camera and code causes failed scans — reflections, moiré, double glazing — and the tilt-and-shade technique that fixes most of them.
- How to scan a QR code from a screenshot — The camera cannot scan its own screen — decode the screenshot instead. Live Text on iPhone, Google Lens on Android, or upload it to a browser scanner.
- QR codes on a dark-mode website — Dark mode silently turns transparent QR codes into light-on-dark, which many scanners refuse. Give every code an explicit light card that ignores the theme.