Someone sends you a QR code in a chat instead of a link, or your ticket arrives as a screenshot in your email. 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, 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.

Upload the image and read the result

Save the picture first, 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 jsQR searches the pixels; when it finds a code, the contents appear under 'Decoded' within moments, with a Copy button beside them. The picker accepts any image file your browser can open.

What you get back is the code's raw contents as plain text — usually a web address, sometimes Wi-Fi credentials, a contact card, or plain text. A Wi-Fi code reads as one 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 as text is the point: you can type the password in by hand, or read a link in full before visiting it. Nothing opens automatically. One code is read per image — crop a picture with several codes down to the one you want first.

When it says "No QR code found in that image"

The usual causes: a photo taken too far away, glare or shadow, a screenshot compressed by a messaging app until the edges turn to mush, a steep angle, or damaged print. The numbers show why cropping works: a code 300 pixels across in a 1,080-pixel-wide screenshot is 27.8% of the frame and usually decodes fine, but a 60-pixel code in a 4,032-pixel photo is 1.5% of the width — no decoder can read squares that small. Crop to a 400-pixel square around a 300-pixel code and it fills 75% of the frame. Retake closer and square-on, turn the flash off if it glares, and ask for the original if a forwarded copy is too compressed.

Read the full guide

How to Scan a QR Code from a Screenshot or Photo — the full guide has the camera alternative, the complete failure checklist, the safety check for links, and why the image never leaves your device.