Skip to content
QuikTools Hub

How to Scan a QR Code from a Screenshot or Photo

Published: 12 November 2026 · by QuikTools Hub

Someone sends you a QR code in a chat instead of a link. Your ticket arrives as a screenshot in your email. A poster on a wall was photographed weeks ago and the photo is still in your gallery. In each case the code is a picture, and pointing your phone camera at your own screen is a poor way to read it — the screen glares, the code is small, and your phone’s camera app cannot scan a picture that is already on the phone. The fix is a scanner that takes an image file: upload the screenshot and the code is decoded from the pixels. Our QR Code Scanner does exactly that, in your browser, with the image never leaving your device.

The method is short: save the picture as a file, open the scanner, choose the file, read the result. No app to install, no account, nothing uploaded — the decoding runs on a canvas in your own browser tab, using the jsQR library, the same approach the tool page documents. This guide walks through the upload flow, the camera alternative for a code in front of you, what to do when the scan fails, and the one safety check that matters before you open anything a code tells you to.

When a screenshot is all you have

Most QR codes are designed to be scanned in person: printed on a poster, stuck to a table, shown on a till screen. But codes increasingly arrive as pictures. A friend sends a Wi-Fi code in a chat instead of typing the password. An event ticket lands in your inbox as a screenshot. A menu code photographed on holiday sits in your gallery months later. A code appears on a screen during a video call, on a screen your own camera cannot point at. In every one of these cases the code exists only as pixels on your device, and the camera in your phone is the wrong tool for it — it scans the physical world, not your photo library. What you need is a reader that starts from a file, and that is the gap this scanner fills.

Step 1 — upload the image and read the result

Save the picture first, if it is not already a file: take the screenshot, download the attachment, or find the photo in your gallery. Then open the QR Code Scanner and use the ‘Scan from image’ file picker to choose it. The image is drawn onto a canvas in the page and the jsQR library searches the pixels for a code; when it finds one, the contents appear under ‘Decoded’ within moments, with a Copy button beside them. The picker accepts any image file your browser can open — a PNG, a JPG, a WebP, a screenshot straight from your phone — and there is nothing to install or sign up for.

What you get back is the code’s raw contents as plain text. Most codes hold a web address. Others hold Wi-Fi credentials, a contact card, or plain text. A Wi-Fi code reads as a single line, for example WIFI:T:WPA;S:CafeGuest;P:coffee2026;; — T is the security type, S is the network name, P is the password. Reading it here, as text, is the point: you can read the password and type it into your Wi-Fi settings by hand, or read a link in full before deciding whether to visit it. Nothing opens automatically, so nothing happens until you choose it. One code is read per image, so if a picture holds several codes, crop it down to the one you want first — the Image Cropper does that in seconds.

Step 2 — the camera alternative

If the code is in front of you — on a poster, a table tent, a product box — the same tool scans live. Click ‘Start camera scan’ and allow the browser’s permission prompt. On phones the scanner asks for the rear camera, the one you would take a photo with. The live preview appears on the page and frames are checked continuously; the instant a code is recognised, the camera stops by itself and the contents are shown, so there is no shutter button to press and no photo is taken or kept. Click ‘Stop camera’ to end the feed without a result.

Two requirements come from the browser, not from this site: camera access only works on a secure (HTTPS) page, and only with your explicit permission. If you refuse, or the device has no camera, the scanner says so plainly and image upload still works — photograph the code with any camera app and upload the picture instead. Either way, the video and the images stay on your device.

When it says “No QR code found in that image”

Decoding needs a recognisable pattern of dark and light squares, and the usual causes of failure follow from that. A photo taken too far away, so the code occupies a few dozen pixels. Glare or shadow across the code. A screenshot compressed by a messaging app until the edges turn to mush. A code photographed at a steep angle. Or physical damage — folds, scratches and worn print. The fixes follow from the causes, and the numbers show why cropping works.

Take a phone screenshot 1,080 pixels wide with a code 300 pixels across: the code is 27.8% of the frame width, which usually decodes without trouble. But a code photographed from across a room can be 60 pixels wide in a 4,032-pixel photo — 1.5% of the width — and no decoder can read squares that small, because the detail was never captured. Cropping changes the arithmetic: cutting the image to a 400-pixel square around a 300-pixel code makes the code fill 75% of the frame. Retake the photo closer and square-on, turn the flash off if it glares, and if a forwarded screenshot is too compressed to recover, ask for the original photo — or scan the physical code with the camera instead.

  • Crop so the code fills the frame. The Image Cropper cuts a picture down to the single code you need.
  • Retake the photo closer and square-on, with the code flat and evenly lit.
  • Turn the flash off if it glares, and wipe the lens — a smeared lens blurs every square.
  • Ask for the original instead of a forwarded copy. Each forward through a chat app re-compresses the image.
  • Use camera mode as the fallback. Moving the physical code slowly through the preview often succeeds where a still photo fails.

Safety: read the link before you open it

A QR code is a machine-readable instruction, and you cannot tell by looking at the pattern where it leads. A code on a poster can point at a login page that mimics your bank. A code stuck over a parking meter’s real code can point at a payment page that is not the council’s. The defence is built into how this scanner works: it shows you the decoded text and opens nothing. Read the address in full and check the domain character by character, because a look-alike domain is the oldest trick in the book, and only then decide whether to visit it. If the decoded text is a Wi-Fi password or a contact card, there is nothing to open at all. For the full format of what a Wi-Fi code contains, Wi-Fi QR Codes: The Format Explained breaks the payload down field by field — including the security fact that a printed Wi-Fi code is your password in a machine-readable font. And if you need to make a code of your own, the QR Code Generator builds link, Wi-Fi and contact codes in the same on-device way.

Privacy: the image never leaves your device

A QR code is often a credential in disguise: a boarding pass, a payment address, an event ticket, a login link, the password to someone’s home Wi-Fi. Sending a picture of it to a server-side scanner means handing that credential to a third party and trusting their logs. This scanner makes the opposite trade: the file is opened locally, drawn onto a canvas in the page and decoded by JavaScript running on your device — nothing is sent to a server, stored or logged, and closing the tab discards everything. That is the same on-device rule the whole site runs on, explained in Which Online Tools Upload Your Files — and Which Never Do. It is also why the scanner needs no account: there is nothing to sign up for when there is nothing to store.

Try it now: save the screenshot, upload it to the QR Code Scanner, and read the decoded text before you open anything. About a minute, no app, and the image never leaves your browser.

Frequently asked questions

How do I scan a QR code from a screenshot on my phone?

Save the screenshot as an image file, then open the QR Code Scanner and use the ‘Scan from image’ picker to select it. The code is decoded on your device and its contents appear under ‘Decoded’. This works for screenshots taken on your phone, images saved from a computer, and codes sent to you in chats or email — anywhere the code exists as a picture rather than a physical object.

Can I scan a QR code with my laptop webcam?

Yes. Click ‘Start camera scan’, allow the browser’s camera permission, and hold the code — printed, or shown on another screen — in front of the webcam. The preview is checked continuously and the camera stops automatically when a code is recognised. Your browser will only allow this on a secure (HTTPS) page, which this is; if the laptop has no camera or you deny permission, uploading an image of the code works just as well.

Why does it say “No QR code found in that image”?

The decoder could not find a readable pattern in the picture. The usual causes are a code too small in the frame, glare or shadow, heavy compression from a messaging app, a steep angle, or damaged print. Crop the image so the code fills more of the frame — the Image Cropper on this site does that in seconds — retake the photo closer and square-on, turn the flash off, or ask for the original photo instead of a forwarded copy. Camera mode is the fallback if the still image will not decode.

Is it safe to open a link from a QR code?

Only after reading it first. A QR code can point anywhere, including a fake login or payment page, and the pattern itself gives nothing away. This scanner shows you the decoded text and opens nothing automatically, so read the address in full, check the domain character by character, and only then decide whether to visit it. Treat a code from a stranger exactly like a link from a stranger.

Is the screenshot I upload sent anywhere?

No. The file is opened locally, drawn onto a canvas in the page and decoded by JavaScript running on your device. Nothing is sent to a server, stored or logged, and closing the tab discards everything. That makes the scanner safe for codes that are effectively credentials — boarding passes, event tickets, payment codes and Wi-Fi passwords.

More guides on the QuikTools Hub blog.