QR Code Scanner From Image: How to Scan a Screenshot or Photo

You saved a screenshot of a QR code. Now your phone camera has nothing to point at. Here’s the catch: the camera scanner reads a live view, and a saved picture isn’t one.
A QR code scanner from image is a reader that decodes a QR code from a saved image file instead of a live camera view. The image can be a screenshot, a downloaded picture, or a photo from your gallery. The reader finds the square pattern, turns it into text, and shows you the text, usually a web link. It’s how you read a QR code from an image, scan a QR code from a picture, or open a QR code from a screenshot.
I’m Bhargav, founder of linkutm. My team generates QR codes for marketers, so I see how codes get shared as images: in email, in chats, in slide decks. For this guide I did two things. I checked what Apple, Google, Samsung and Microsoft actually document for scanning from an image. Then I ran a decode test on image files to see what breaks them.
Some popular tips didn’t survive that check. I’ll flag each one.

One scope note. For live-camera steps on each phone, see my guide on how to scan a QR code. For which app to install, see the best QR code scanner apps. This post is only about the image file.
How Do You Scan a QR Code From an Image?
You scan a QR code from an image by opening the image in a tool that reads image files, or by showing the image on a second screen and scanning it with your camera. Which tool works depends on your device, and vendors document less than you’d expect.
Here’s what I could verify against official pages on 2026-10-06. Use it to pick a QR code scanner from image for your device, or to see how to scan a QR code from a screenshot on it:
| Your device | What to try | What the vendor documents |
|---|---|---|
| iPhone or iPad | Show the image on another screen, scan with Camera or the Scan Code control | Apple documents live camera scanning only |
| Google Pixel or other Android | Open the image in Google Lens | Google says Lens scans QR codes and works on photos, in separate pages |
| Samsung Galaxy | Gallery, select the image, tap Bixby Vision | Samsung’s Ireland page lists this for QR codes, “not available on all devices” |
| Windows | Snipping Tool, Text Actions | Microsoft’s Windows Insider blog (May 2024) |
| Mac | Decode online or locally (see below) | Apple documents no QR decoding in Preview or Photos |
| Any computer | ZXing web decoder or a local script | zxing.org accepts uploads under 10MB and 10MP |

How Do You Scan a QR Code From a Screenshot on iPhone?
On iPhone, the documented route is a live camera pointed at the code, so the screenshot has to be on another screen first. Apple’s guide says to open Camera in Photo mode, position the code inside the frame, and “tap the link that appears at the bottom of the screen.”
The Control Center control does the same thing. Apple’s iOS 16 to 18 guides call it Code Scanner. The newest guide calls it Scan Code. Same job, different name.
What about reading the code straight from Photos? Many sites say Live Text does it. Apple’s Live Text page covers copying text, phone numbers and translation. It never mentions QR codes. The Mac guides for Preview and Photos don’t either.
Photos does have a Utilities collection that groups images containing QR codes. That helps you find last month’s screenshot. It’s a folder, not a decoder.
Real talk: I won’t promise you a one-tap iPhone method that Apple doesn’t write down. If you need certainty, send the image to a laptop and scan the screen, or decode it with the local method further down.
Limitation: the second-screen trick needs a second screen. A phone can’t point its own camera at its own display.How Do You Scan a QR Code From a Picture on Android and Samsung?
On Android, Google Lens is the closest thing to a documented route. Google’s Pixel page says “You can also use Google Lens to scan QR codes.” Separate Google pages show Lens opening from Google Photos (select a photo, tap More, then Google Lens) and from the Google app, where you pick a photo under “Screenshots.”
Google never joins the two sentences into “scan a QR code from a saved image.” Try it: open the image in Photos, tap Lens, and see whether a link appears. If it does, you’re done.
The Pixel’s Quick Settings “Scan QR code” tile is documented as a live scanner. Google’s page doesn’t mention saved images, so I wouldn’t count on it for screenshots.
On a Samsung Galaxy, the better-documented path is the Gallery. Samsung’s Ireland support page says to open Gallery, select the image, tap the Bixby Vision button, then choose “Open in browser” or “Copy”. The same page warns Bixby Vision “is not available on all devices.” Samsung’s US page words things differently, so check your own phone.
Limitation: Google, Samsung and Apple change these menus often. Treat the steps as a starting point, and trust what your own phone shows over any article, including this one.How Do You Scan a QR Code From an Image on Windows or Mac?
On Windows, the Camera app’s Barcode mode only reads the live camera, per Microsoft’s Camera app guide. For saved images, the documented option is Snipping Tool. A Windows Insider post dated May 9, 2024 says Snipping Tool 11.2404.39.0 added “the ability to detect QR codes in screenshots”, shown when you enter Text Actions from the markup canvas.
That’s a blog post, not a Support page, and it was an Insider rollout. Your version may differ.
On a Mac, I found no official way. Preview and Photos Live Text pages cover text, phone numbers and websites, not QR codes. For a Mac, use the online or local decoder below.
Limitation: a desktop webcam is a poor scanner anyway. My decode test on blur shows how quickly a fixed-focus lens loses a small code.Online QR Code Scanner From Image or Local Decoder: Which Is Safer?
You can decode an image online with the ZXing web decoder, or locally with a few lines of Python. Local is safer. Nothing leaves your machine.
The ZXing decoder is the simplest online option. It takes an image URL or an upload under 10MB and 10 megapixels. The page doesn’t say whether it stores uploads, so I wouldn’t use it for a login code, a payment code, or a two-factor setup code.
ZXing is the open-source barcode library behind many scanner apps. Its C++ version, ZXing-C++, is what I used for my tests (version 3.1.1, released July 29, 2026).Here’s how to decode a screenshot locally:
- Save the screenshot as a PNG on your computer. PNG avoids extra compression.
- Install two packages:
pip install zxing-cpp opencv-python - Run the script below, changing the file name to yours.
- Read the printed text before you open anything. If nothing prints, the image failed to decode. Jump to the fixes below.
import cv2, zxingcpp
img = cv2.imread("screenshot.png")
for r in zxingcpp.read_barcodes(img):
print(r.format, r.text)
I ran this exact script on a saved PNG of a UTM-tagged code. It printed the format and the full URL. It printed nothing for a blank image.
Limitation: this needs Python installed. If that’s too much, the online decoder works for codes you don’t mind uploading.
Why Won’t a QR Code Scanner From Image Read My File? I Tested 6 Conditions
A QR code in an image fails for boring reasons: too few pixels, a tight crop, inverted colors. Compression, surprisingly, almost never matters.
I built a Version 3 code (29 x 29 modules, a module being one square cell) and placed it on a phone-sized 1,170 x 2,532 px page. I ran 40 trials per setting through two decoders, zxing-cpp 3.1.1 and OpenCV 5.0.0. These are image files with no camera step. Both decoders passed the clean baseline 40 of 40 before I trusted any result. The script and data are saved in my research folder.
| Condition | zxing-cpp | OpenCV |
|---|---|---|
| Code 60 px wide in the screenshot (1.6 px per module) | 40/40 | 1/40 |
| Code 90 px wide (2.4 px per module) | 40/40 | 40/40 |
| Code 200 px wide, shrunk to a 1,280 px image, JPEG quality 60 | 40/40 | 36/40 |
| JPEG quality 4, code 400 px wide | 40/40 | 40/40 |
| Cropped with 1 module or more of blank margin left | 40/40 | 40/40 |
| Cropped so the code touches the image edge | 40/40 | 10/40 |
| Light code on a dark background (inverted) | 40/40 | 0/40 |

Three results stand out.
Compression barely matters. JPEG quality 4 is ugly. Both decoders still read it 40 of 40. If your screenshot went through a chat app, compression probably isn’t why it failed. Size and crop do matter. A code 60 px wide in a 1,170 px screenshot is about 1.6 pixels per module. zxing-cpp still read it. OpenCV read 1 of 40. The same split showed up when the code touched the image edge: 40 of 40 against 10 of 40. The blank border around a code is the quiet zone, and a tight crop deletes it. Dark mode inverts the code. A light code on a dark page decoded 40 of 40 on zxing-cpp and 0 of 40 on OpenCV. If your screenshot comes from a dark-mode app, invert the image in any editor and try again.What to do when an image won’t scan
- Crop wider. Leave a visible blank border, ideally 4 modules wide, around the code.
- Enlarge a small code 3 times with smooth scaling. On a code at 2 pixels per module, OpenCV read 27 of 40 as-is. Enlarging 3 times with bicubic scaling read 40 of 40. Blocky “nearest” scaling was erratic: 22 of 40 at 2 times, 37 of 40 at 3 times, 31 of 40 at 4 times.
- Invert dark-mode screenshots before scanning.
- Ask for a better image if you can. A code sent as a PNG, larger than 110 px wide, scans more reliably than a thumbnail.
How big is “large enough”? About 3 pixels per module is a safe floor. A Version 3 code with its margin is 37 modules across, so around 111 px. A denser code needs more. A long URL can push a code to Version 8, 57 modules across with margin, so about 171 px. It’s the same module math I use for the smallest QR code size in print.
Limitation: phones use their own decoders, probably better than these two. A digital file is also far easier than a live camera shot, so my camera-style test is the harder one. Treat these numbers as direction, not a promise.Is It Safe to Use a QR Code Scanner From Image?
Decoding is safe. Opening the result is the risky step. Read the decoded text before you tap anything.
That’s the real advantage of decoding to text first. A scanner app often jumps straight to a link. A decoder that prints the URL gives you a moment to look at the domain.
The FTC’s advice from December 2023 is blunt: “If you see a QR code in an unexpected place, inspect the URL before you open it.” It also says not to scan a code in an email or text you weren’t expecting. A screenshot someone forwarded counts as unexpected.
My checklist is short: read the domain, watch for lookalike spellings, and don’t enter a password or card number on a page you reached from a stranger’s image. My guide on how to tell if a link is safe has the longer version.
Limitation: a clean-looking domain can still redirect. The preview shows the first address, not the last.Want a QR Code From an Image Instead?
Some people searching “qr code from image” or “qr code picture” want to make a code, not read one. There are two different jobs here.
- A QR code that opens an image. Upload the picture and the generator creates a code that links to it. linkutm’s free image QR code generator does this.
- A QR code with a picture inside. A logo sits in the center of the code. Error correction repairs the covered modules, so keep the logo small. linkutm’s QR code generator with logo handles it.
If you plan to print the code, make it a dynamic QR code. You can then change the image behind it without reprinting.
Limitation: a code that points to a large image loads slowly on a weak connection. Resize the image first.Frequently Asked Questions
Can I scan a QR code from a screenshot on the same phone?
Not with the camera. A camera can’t point at the screen of its own phone. Use a tool that reads image files, such as Google Lens on Android or Bixby Vision in Samsung’s Gallery. Or send the screenshot to another device and scan that screen.Do I need to download a QR code reader?
Usually no. iPhone, Pixel and Windows all include a live camera scanner, per Apple, Google and Microsoft. Reading a saved image is the case that sometimes needs an extra tool. If you do install one, check my guide to scanner apps first, because some are riskier than the problem they solve.Why does my QR code image work in one app and not another?
Every scanner uses its own decoder. In my test, zxing-cpp read a 60 px code and OpenCV didn’t. If one reader fails, try another, enlarge the image, or add blank margin around the code.Can I scan a QR code from a photo I took?
Yes, if the photo is sharp and shows the whole code. A photo of a printed code adds blur and perspective, which a screenshot doesn’t have. See my notes on blurry QR codes if the photo is soft.What if the QR code image is too small or blurry?
Enlarge it about 3 times with smooth (bicubic) scaling before decoding. In my test, that took OpenCV from 27 of 40 to 40 of 40 on a 2-pixel-per-module code. Enlarging can’t invent detail in a truly blurred code, though.Is an online QR code reader from an image safe?
It depends on what’s in the image. The ZXing web decoder doesn’t state how it handles uploads. For anything sensitive, like a sign-in or payment code, decode on your own computer instead.The Bottom Line on Scanning a QR Code From an Image
Scanning a QR code from an image comes down to picking a QR code scanner from image that opens files, then giving it a clean input:
- A live camera can’t read a saved screenshot. Use Lens, Bixby Vision, Snipping Tool, or a second screen.
- Vendors document less than blogs claim. Test any method on a code you made.
- For sensitive codes, decode locally and read the URL before you open it.
- If a scan fails, crop wider, enlarge about 3 times, or invert a dark-mode screenshot.
If you’re the one sharing codes as images, send a PNG with a clean border and a short link. linkutm’s QR codes feature builds dynamic, branded codes you can edit after sharing and count every scan.