Web Developer Tools · · 5 min read
How to Scan a QR Code from an Image or Screenshot
Upload a QR code photo or screenshot to read its link, Wi-Fi password or contact details instantly, decoded in your browser with no app install.
To scan a QR code from an image, open the QR Code Decoder, drop in the photo or screenshot, and the decoded text appears automatically — no camera, no app, and if the content is a link, a one-click Open link ↗ button shows up next to it.
What this tool actually does
The QR Code Decoder takes whatever image you give it, draws it onto a canvas against a white background (so transparent PNGs or SVGs don't confuse the scan), and tries to read a QR code out of it. It first tries your browser's built-in BarcodeDetector API, which is fast and native in Chromium-based browsers like Chrome and Edge. If that API isn't available — or it doesn't find anything — the tool falls back to jsQR, a JavaScript QR-decoding library it loads on demand, and asks it to try reading the image both right-side-up and inverted, so a code with white modules on a dark background is just as readable as a normal black-on-white one.
There are no settings to configure. You drop an image in, and it either finds a code or it doesn't — there's nothing to tune.
How to decode a QR code with Toolbench
- Open the QR Code Decoder.
- Drop in an image, paste one from your clipboard, or click to browse. PNG, JPG, WebP, GIF and SVG all work.
- Wait for "Scanning…" to resolve. Large images are automatically scaled down to a 1,600px-wide working copy before being read, so even a big screenshot decodes quickly.
- If a code is found, the decoded text appears in the Decoded content panel with a Copy button.
- If the text is a web address, an Open link ↗ button appears next to Copy, so you can jump straight to the destination.
- If nothing is found, you'll see "No QR code found. Try a sharper or closer crop of the code" — crop tighter around just the QR square and try again.
Worked example
Say you have a QR code that encodes a plain URL, like https://example.com. Drop its image in, and the Decoded content panel shows exactly that string — https://example.com — with both Copy and Open link ↗ available, since the text starts with https://.
Not every QR code holds a plain link, though. The format of the decoded text tells you what kind of code it was:
| What was encoded | What you'll see decoded |
|---|---|
| A web link | https://example.com |
| Wi-Fi credentials | WIFI:T:WPA;S:NetworkName;P:password;; |
| An email address | mailto:hello@example.com?subject=Hello |
| A phone number | tel:+15555550123 |
| A text message | SMSTO:+15555550123:Hello |
| A contact card | BEGIN:VCARD / VERSION:3.0 / N:Doe;Jane / FN:Jane Doe … END:VCARD |
These aren't guesses — they're the exact formats you'd get back from a Wi-Fi, email, phone, SMS or contact QR code, since that's how the generator that makes them encodes each type under the hood. The decoder just hands you the raw text; your phone or computer is what normally interprets a WIFI: or BEGIN:VCARD string and offers to connect or save the contact. On the web, you'll usually need to copy the relevant piece out yourself — like the password after P: in a Wi-Fi string.
Why a decoded code sometimes isn't a plain link
Because the Open link button only appears when the decoded text starts with http:// or https://, a Wi-Fi code, vCard or SMS code won't show it — even though the decode worked fine. That's expected: the tool is telling you exactly what's inside the code, not reformatting it. If you only see a block of text with a Copy button and no Open link button, that just means the code wasn't encoding a web address.
Tips and common mistakes
- Crop tight if the scan fails. The decoder reads the whole image, so a photo where the QR code is a small part of a busy background can fail where a close, well-lit crop succeeds. Use Crop Image to trim the shot to just the code before retrying.
- A damaged or very low-contrast code won't decode. QR codes rely on sharp contrast between the dark and light modules; a blurry photo, heavy glare, or a code printed too small can all cause "No QR code found."
- Inverted (light-on-dark) codes still work. The jsQR fallback explicitly tries both normal and inverted reads, so white-on-black QR designs decode the same as standard ones.
- Nothing is uploaded anywhere. The image is decoded entirely inside your browser tab — it's never sent to a server, which matters if the code might contain a Wi-Fi password or personal contact details.
- A link in the decoded text isn't verified for safety. The tool just reads what's encoded; it doesn't check the destination. Treat an unfamiliar decoded link the way you'd treat any link from an unknown source before clicking Open link.
Related tools
- QR Code Generator — create your own QR codes for links, Wi-Fi, email, SMS or a contact card.
- Crop Image — trim a photo to just the QR code if the first scan doesn't find anything.
- Convert Image Format — switch a screenshot between PNG, JPG and WebP before decoding.
Frequently asked questions
Do I need a camera to scan a QR code with this tool?
No. The decoder works from any existing image file — a photo you already took, a screenshot, or an image someone sent you — rather than requiring live camera access.
Why does the decoded text look like gibberish with colons and semicolons?
That's normal for anything other than a plain-link code. Wi-Fi, SMS and contact-card QR codes use compact standard formats like WIFI:T:WPA;S:...;P:...;; or BEGIN:VCARD...END:VCARD — the decoder shows you that raw text exactly as it was encoded.
Why doesn't the Open link button show up for my code?
It only appears when the decoded text starts with http:// or https://. If your code encodes Wi-Fi details, a phone number, an SMS or a contact card instead, the decode still worked — there's just no web address to open.
Is my QR code image uploaded to a server?
No. The image is read entirely inside your browser, using either the browser's native barcode API or a JavaScript library loaded alongside the page. Nothing is sent anywhere unless you choose to copy the decoded text and paste it somewhere yourself.
What if the tool says no QR code was found?
Try a tighter crop around just the code, improve the lighting or focus if it's a photo, and make sure the code isn't damaged, too small, or obscured by glare. The scan reads the whole image, so removing distracting background helps.
More guides
- How to Make a QR Code for Free (Links, Wi-Fi, Contacts and More)Make free QR codes that never expire — links, Wi-Fi, email, SMS and contacts — plus the size, contrast and error-correction settings that scan reliably.
- How to Download YouTube Video ThumbnailsPaste any YouTube link to grab its thumbnail in five sizes, from 120×90 up to 1280×720, and download, copy the URL or save it to your gallery.
- How to Adjust Brightness, Contrast and Color of a PhotoBrighten, sharpen contrast, boost saturation, shift hue, or add grayscale, sepia, blur and invert to a photo for free, right in your browser.