# How to scan a QR code from a photo

> Open the photo and let the OS decode it, long-press in Photos on iPhone (Live Text), tap the Lens icon in Google Photos on Android, or upload the file to a browser-based scanner on a computer. If it fails, crop tightly to the code and increase contrast, then retry.

Source: https://useqr.app/docs/scanning/how-to-scan-a-qr-code-from-a-photo · Last reviewed 2026-08-21 · UseQR is free forever, no signup.

---

## Decoding from the gallery

A QR code in a saved photo (a snap of a poster, a menu, a conference badge) decodes the
same way on every platform: hand the image to a decoder instead of the camera.

- **iPhone**: open the photo in **Photos**, long-press the code or tap the **Live Text**
  icon, then tap the link. Needs iOS 15 and an iPhone XS/XR or newer.
- **Android**: open the photo in **Google Photos** and tap the **Lens** icon, or share
  the image to Google Lens from any gallery app.
- **Computer**: drag or upload the file into a [browser-based scanner](/scan). It decodes
  in the browser (the photo never leaves your machine), and shows the raw text before
  you open anything.

Screenshots decode almost every time because they are pixel-perfect. Photos are the hard
case, because a camera adds angle, blur, glare and resolution problems that a screen grab
never has. If it came from a screenshot instead, see the
[screenshot page](/docs/scanning/how-to-scan-a-qr-code-from-a-screenshot).

## Why a photo will not decode

In rough order of likelihood:

| Problem | What it does to the decoder |
|---|---|
| **Code too small in frame** | Each module (square) needs about **3 pixels minimum**; a code that is 5% of a 12 MP photo is often below that |
| **Steep angle** | The grid becomes a trapezoid; beyond roughly 30–40° off-axis most decoders give up |
| **Motion blur / missed focus** | Module edges smear together, so thresholding fails |
| **Glare** | A highlight burns a white patch across modules: data loss, not noise |
| **Low contrast** | Shadows or tinted lighting push dark and light modules toward each other |

## The rescue sequence

Work through these in order, retrying the decode after each step:

1. **Crop** to just the code plus a small margin. This raises the code's share of the
   pixels and removes background clutter that can distract detection.
2. **Straighten** it. Any photo editor's perspective or skew tool helps; getting the
   code roughly square-on is often the single decisive fix.
3. **Boost contrast** hard. Push the image toward pure black-and-white: decoders
   threshold on luminance, so exaggerating the difference is safe. Greyscale first if
   your editor allows it.
4. **Re-upload** to the [scanner](/scan) after each change rather than assuming the first
   failure was final, different preprocessing changes the outcome.

If the code is physically damaged (torn, scratched, faded) the game changes from image
cleanup to error-correction tactics, covered on the
[damaged code page](/docs/scanning/how-to-scan-a-damaged-qr-code).

## When to give up and rescan

A photo is a lossy copy. If you can return to the original code, a second photo taken
**square-on, close, and without flash glare** beats twenty minutes of editing. Fill
roughly a third of the frame with the code, hold still, and tap to focus on it. And if
the original itself will not scan even in person, the problem is the code, not your
photos: start with the [not-scanning checklist](/docs/troubleshooting/qr-code-not-scanning-checklist).

## FAQ

### Can I scan a QR code from a picture in my gallery?
Yes. On iPhone, long-press the code in Photos or use Live Text. On Android, open the
image in Google Photos and tap the Lens icon. On a computer, upload the file to a
browser-based scanner.

### Why won't a QR code in a photo scan?
The usual causes are the code being too small in the frame, a steep angle, blur, or
glare. Crop tightly to the code, straighten the perspective, and boost the contrast,
retrying after each step.

### How many pixels does a QR code need to decode?
As a rule of thumb, at least 3 pixels per module. A version 3 code is 29 modules across,
so it wants roughly 90 pixels of width in the image, cropping helps because it raises
the code's share of the picture.

### What is the best way to photograph a QR code so it scans?
Square-on, close enough that the code fills about a third of the frame, focused on the
code, and without flash, flash glare burns out modules. A steady, well-lit shot decodes
on the first try far more often than an edited bad one.

## Try it

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