How to Scan a QR Code From an Image or Photo
Here's a scenario I've seen dozens of times. Someone sends you a QR code over text — maybe a Wi-Fi password, a payment link, an event ticket. You screenshot it. Then you open your camera, hold your phone up to your screen, and try to scan the screenshot off the glass. Nothing. Or you got sent a photo with a QR code embedded in it and you're sitting at your laptop — no phone camera in sight. The QR code is right there. You just can't read it.
This comes up constantly, and the solution depends on what device you're on. Let me walk through each platform — iPhone, Android, Mac, Windows — with what actually works and where the limits are.
iPhone — Visual Look Up in iOS 16+
Apple quietly added QR code support to Visual Look Up in iOS 16. If you're on a supported device, here's how to use it:
- Open the Photos app and find the image with the QR code.
- Long-press directly on the QR code in the image.
- A context menu should appear with an option to open the link or copy its content.
When it works, it's genuinely smooth — no extra app, no steps, just tap and go. The problem is reliability. Visual Look Up only triggers on some QR codes, and it tends to work best on clean, high-contrast codes in well-lit photos. Worn codes, angled photos, and anything with a busy background often get no response at all. If you long-press and nothing happens, the feature simply didn't detect the code.
The bigger concern for sensitive codes: Visual Look Up routes through Apple's servers to process the image. For a link to a restaurant menu, that's fine. For a Wi-Fi password QR code, a payment link, or anything with credentials in it, you're sending that image to Apple for analysis. That's worth knowing before you use it. For a deeper look at QR scanner privacy tradeoffs, that post covers what actually happens to your scan data. If iPhone-specific scanning is your main concern, the iPhone QR scanner guide goes deeper on where Apple's built-in scanner has real blind spots.
Android — Google Lens From Photos
On Android, Google Lens handles this well. Here's how:
- Open Google Photos and navigate to the image.
- Tap the Lens icon (the small circle with a dot in the bottom toolbar).
- Google Lens will analyze the image and detect the QR code. Tap the highlighted area to follow the link or copy the content.
This works reliably on Pixel and Samsung devices, and generally well on any Android running a recent version of Google Photos. The detection accuracy is solid — Lens handles partial codes, lower-contrast images, and screenshots better than most alternatives.
The tradeoff is the same as iPhone: Lens uploads your image to Google for processing. The decoded result comes back from Google's servers, not from your device. For public-facing codes that's a non-issue. For anything private — login links, personal documents, payment flows — that upload is a meaningful privacy consideration. See the Android QR scanner guide for more on where the built-in approach falls short.
Mac — Awkward Workarounds, No Native Decoder
macOS Ventura and Sonoma don't include a native QR code decoder anywhere obvious. If you open a photo in Preview or Quick Look, you can zoom in and see the code clearly — but neither app will decode it for you. One workaround people sometimes find: right-click the image → Open With → Safari. Safari occasionally recognizes QR codes in images and triggers its Smart App Banner. But “occasionally” is doing a lot of work in that sentence. It's unreliable and depends on the specific code and image.
The practical answer on Mac is to open the image on your monitor and point your iPhone at the screen. Display it large, open SnapScan, and it reads through the screen luminance in under a second. For more on cross-platform QR scanning from a Mac, the Mac desktop guide has the full picture.
It sounds like a roundabout solution, but in practice it's faster than any multi-step workaround. You're not uploading anything, not installing a browser extension, and not hoping a Preview trick works this time.
Windows — No Native Option, Third-Party Required
Windows has no built-in QR decoder — not in Photos, not in the Camera app, not anywhere in the OS. As of 2026, that gap still hasn't been closed. The most common workaround people reach for is a browser extension or online image-upload tool: you drag the screenshot into a web-based QR decoder and get the result back.
The catch is exactly what you'd expect: you're uploading the image to a third-party server. For a link to a public website, that's probably fine. For a Wi-Fi password, a login token, or a payment QR code, that upload puts sensitive data in transit to a service you haven't vetted. The Windows QR scanner guide covers browser extensions, webcam apps, and online tools in detail — with honest notes on where each one breaks down.
The Cleaner Approach on Any Platform
Regardless of which device you're on, there are two approaches that consistently work without routing your image through a cloud service:
Option 1: Open the image on screen, scan with SnapScan. Pull the photo up on your computer monitor (full screen if possible) and point SnapScan at the screen. SnapScan's decoder is built to handle screen luminance — the backlight, the pixel grid, the slight wash that trips up the stock camera — and reads through it cleanly. The whole thing takes two or three seconds once you have the image displayed.
Option 2: Import from Camera Roll. If the photo is already on your phone, some QR scanner apps — including SnapScan — support loading images directly from your Camera Roll rather than using the live camera. You pick the photo, the app decodes the QR code from the image file, and you get the result without ever having to point the camera at anything. Nothing is uploaded. The decode happens locally, on your device.
Why It Matters for Sensitive Codes
Most QR codes people encounter are benign — restaurant menus, event schedules, product links. For those, Apple's Visual Look Up or Google Lens is perfectly fine. But QR codes also carry Wi-Fi credentials, payment links, event tickets with embedded authentication tokens, and login URLs. Those aren't things you want running through an image processing pipeline at Google or Apple — or uploaded to a random decode tool you found via web search.
A local decoder changes the equation entirely. When the decode happens on your device and nothing is sent to a server, there's no exposure window. It's a meaningful difference for the category of codes that actually matter — and honestly, you rarely know in advance which ones those are until you've already scanned.
Decode QR codes from images — no upload, no server, nothing leaves your device.
SnapScan decodes QR codes from images directly on your device — nothing sent to a server. $14.97 once, no subscription.
Try SnapScan for $14.97FAQ
Can I scan a QR code from a screenshot on my iPhone?
Yes, on iOS 16 and later you can try long-pressing the QR code in the Photos app — Visual Look Up will sometimes offer to open the link. It's inconsistent though, and only works on some codes. For reliable results, use a dedicated QR scanner app that supports importing from your Camera Roll, which decodes locally without sending the image to Apple's servers.
Can I scan a QR code from a photo on Android?
Yes — open the image in Google Photos and tap the Lens icon. Google Lens will detect the QR code and let you follow the link or copy the content. It works well on Pixel and Samsung devices. Just keep in mind that Lens uploads the image to Google for processing, which matters if the QR code contains anything private.
Why doesn't my camera scan a QR code image on a screen?
Screen luminance, pixel patterns, and the slight wash from backlit displays create contrast and focus conditions that trip up the stock camera's QR decoder. A dedicated scanner app like SnapScan compensates for screen glare in its decoding engine — it's designed to read codes off monitors specifically. The built-in camera app is optimized for physical codes in good ambient lighting, not backlit screens.
Is it safe to scan a QR code from an image using Google Lens?
For most everyday QR codes — public links, event info, restaurant menus — Google Lens is fine. The concern is for sensitive codes: Wi-Fi passwords, payment links, login tokens, or anything private. Lens uploads the image to Google's servers for processing, which means that data leaves your device. If you're scanning something you wouldn't want Google to see, a local decoder that processes on-device is the safer choice.
If the QR code is already on your screen, SnapScan is still the fastest path — point your phone, tap, done.
SnapScan: decode QR codes from images on your device, no upload needed.
Try SnapScan for $14.97