# 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.

Source: https://useqr.app/docs/scanning/scanning-a-qr-code-off-a-monitor · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## 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](/glossary/error-correction-level) 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](/docs/scanning/qr-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

1. **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.
2. **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](/docs/print/the-10-to-1-distance-rule) still applies — a 4 cm code is
   good to 40 cm.
3. **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.
4. **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](/docs/scanning/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](/docs/design/qr-code-in-a-dark-mode-website), and
the recovery steps are in
[inverted and unreadable codes](/docs/troubleshooting/qr-code-inverted-and-unreadable).

## 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](/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](/docs/scanning/how-to-scan-a-qr-code-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](/qr-codes-on/slide-decks)) and a pre-flight decode check
with the [validator](/validate).

## 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

- https://useqr.app/scan
- https://useqr.app/validate
