QR Code Scanner
Point your camera at a QR code, or drop in a photo or screenshot. You see exactly what it says, and where a link really goes, before anything opens.
Drop a QR code image hereScan a QR code
or paste a screenshot (Ctrl+V, ⌘V)with your camera, or choose a photo or screenshot
Read on this device. Nothing is uploaded, and the camera stops as soon as a code is read.
ExampleLink
example.com
An encrypted (https) link. Make sure this is the site you expect before you open it.
An example: scan a code of your own and its contents replace this.
https://example.com/menu?table=12
Exact text in the code33 characters
How this works: Method, 10 sources, Checked against 3 worked examples,
How this works
Method
A picture or camera frame is decoded on this device, by the browser’s own barcode detector where it has one, else by the open-source jsQR decoder (a still image is retried smoothed and at half size). The text is shown, never opened: a link’s real domain is found with common Public Suffix List endings and checked for short links, look-alike letters, text before an @, IP addresses and plain http. New codes are encoded as UTF-8 in the smallest version that fits, then decoded again to check they read back.
Sources
- FTC: Scammers hide harmful links in QR codes (2023)
- MDN: BarcodeDetector
- ISO/IEC 18004:2024, QR Code bar code symbology specification (2024)
- ZXing wiki: Barcode Contents (Wi-Fi, MECARD, URL)
- RFC 6350: vCard Format Specification (4.0) (2011)
- RFC 2426: vCard MIME Directory Profile (3.0) (1998)
- MDN: MediaDevices.getUserMedia()
- RFC 3492: Punycode (2003)
- Public Suffix List
- WCAG 2.2, 1.4.3 Contrast (Minimum) (2023)
How it’s tested
3 worked examples for this page are checked by automated tests before every release: given the inputs, the tool must show the expected answer.
Changes
- First version: a scanner for camera, photos and screenshots with link checks, and generators for links, text, Wi-Fi and contacts with SVG and PNG downloads.
Worked example: the code for https://example.com/menu?table=12
The example code holds 33 characters: https://example.com/menu?table=12. It starts with https://, so the scanner treats it as a web link and reads it the way a browser will.
The host is example.com. Its registrable domain, the part that decides who runs the site, is example.com, so that is what the result highlights. It raises no warnings: it is https, it has no short-link service, no international letters, nothing before an @ and no raw IP address. Nothing opens until you choose Open link.
How the scanner reads a code
A QR code is a grid of dark and light squares called modules. Three large squares in the corners tell a reader where the code is and which way up it sits; the reader then samples every module, undoes the mask that keeps the pattern even, corrects damaged parts with the Reed–Solomon error correction built into the code, and turns the bits back into text. All of that is defined in ISO/IEC 18004.
On this page, the reading happens on your device. Where your browser has a built-in barcode detector (Chrome on Android, macOS and ChromeOS), the page asks it first. Everywhere else it loads a small open-source decoder, jsQR, the first time it’s needed. With the camera, frames are read straight from the video into the page several times a second; they’re never recorded, saved or sent.
A code only holds text. Phones agree on a few patterns inside that text: a web address starts with https://, Wi-Fi details start with WIFI:, a contact card with BEGIN:VCARD. The scanner recognises these and shows each one in its own way, but it never opens a link or joins a network by itself: you see the text first and decide.
- Criminals stick QR codes over real ones on parking meters and send them in texts and emails, so check the address before you open a link from a code. Source: FTC: Scammers hide harmful links in QR codes.
- Chrome has a built-in BarcodeDetector on Android, macOS and ChromeOS; Firefox has none, and Safari only behind a developer setting. Source: MDN: BarcodeDetector.
- A reader needs a clear margin of four modules around the code, the quiet zone; a code cropped tight to its edge often fails to scan. Source: ISO/IEC 18004:2024, QR Code bar code symbology specification.
What the scanner recognises
Each kind of QR code content, how it starts, and what the scanner shows and offers for it.
| Kind | Starts with | What you see | What you can do |
|---|---|---|---|
| Web link | https:// or http:// | The full address, the real domain highlighted, and warnings | Open link (after you check it), copy |
| Wi-Fi network | WIFI: | Network name and security; password hidden until you tap Show | Copy password |
| Contact (vCard) | BEGIN:VCARD | Name, company, phones, emails, website | Save contact (.vcf), copy |
| Contact (MECARD) | MECARD: | Name, phones, emails, address | Save contact (.vcf), copy |
| mailto: or MATMSG: | Address, subject and message | Copy | |
| Phone call or text | tel:, sms:, smsto: | The number and any message | Copy |
| Map location | geo: | Latitude and longitude | Copy |
| Two-factor setup | otpauth:// | The service and account; the secret stays hidden | Scan it with your authenticator app instead |
| Anything else | any other text | The exact text | Copy |
Frequently Asked Questions
How do I scan a QR code on my laptop?
Choose Scan with camera and hold the code up to your webcam, close enough to fill a good part of the frame but not so close that it blurs. If the webcam can’t focus that close, take a photo of the code with your phone and drop the photo here instead, or take a screenshot if the code is on your screen and paste it with Ctrl+V (⌘V on a Mac).
Why won’t my camera start?
Usually the browser has blocked it for this site. Click the camera or lock icon next to the address, allow the camera, and press Scan with camera again. If another app (a video call) is using the camera, close it first. On a computer with no camera, upload or paste an image instead: it works the same way.
Is it safe to open a link from a QR code?
Only once you’ve checked where it goes. The scanner shows the whole address and highlights the domain, the part that decides who runs the site, and warns about short links that hide the destination, look-alike letters and unencrypted http pages. If a code on a poster or meter asks you to log in or pay, go to the company’s site yourself instead.
Does this scanner upload my images?
No. The image or camera frames are decoded inside this page, and the footer’s “On this device” counter shows 0 uploads while you use it. Once the page has loaded it also works offline.