Scan a QR code from an image or your camera, without an app
Phone cameras have been able to scan QRs natively since 2018. Point, scan, tap the notification, done. That works great for QRs on physical objects: a poster, a menu, a sticker on a coffee bag. It breaks down for QRs that live inside your other devices. A QR in a screenshot a friend sent you. A QR in an email confirmation. A QR inside a PDF invoice. A QR embedded in a digital ad on your laptop. For any of those, this tool is faster than firing up a phone camera and physically pointing it at a screen.
How browser-based QR decoding actually works
This tool runs jsQR, a JavaScript QR decoder that reads pixel data from a canvas and runs the same finder-pattern detection algorithm a phone camera would. It does not need any server contact. The image is loaded into a canvas, the canvas pixel data is passed to jsQR, and the decoded string comes back in milliseconds. The whole pipeline weighs about 50 KB of JavaScript and runs on any modern browser.
Live camera mode versus image upload
Image upload is for QRs that already exist as a file or screenshot. Live camera is for physical QRs you want to scan with your laptop webcam or phone camera through this page. The Use Camera button asks the browser for permission once, then shows a live preview with QR detection running roughly 4 times per second. As soon as a QR is in frame and decoded, the camera stops and the result appears.
The camera feed never leaves your browser. The browser only enables the camera while this tab is open and visible, and you can close the camera mode any time. We have no way to record or store what your camera sees.
Why decoding before clicking matters
Public QRs on signs, stickers, and posters can be tampered with. An attacker might cover a legitimate QR with a printed sticker pointing to a phishing site. If you scan an unfamiliar QR straight from a public surface, you might end up on a fake login page that looks like your bank or a fake delivery tracking page that asks for personal details. Decoding the QR first in this tool shows you the actual URL before you visit it. If the URL looks suspicious (long random redirector, typos in the domain, weird subdomain), do not visit.
QR content types this tool detects
Plain URLs (https://example.com), WiFi credentials (WIFI:T:...;S:...;P:...;;), vCards (BEGIN:VCARD...END:VCARD), email mailto links (mailto:you@example.com), phone tel links (tel:+15551234567), SMS links (SMSTO:...), and plain text. The decoded string is displayed with a type tag that tells you what kind of content was inside. URLs get an Open Link button. Everything else is copy-only because there is nothing useful to "open" for plain text.
When a QR will not scan
Blurry photos are the most common cause. The QR pattern needs to be sharp enough that the dark and light squares are clearly distinguishable. Heavy shadow or glare across the QR also blocks decoding. Partial QRs where more than 30 percent is cut off or missing are usually unrecoverable, since the error correction tops out at 30 percent. Very small QRs in a photo (where the QR is only 100 pixels wide) may need a higher resolution source image.
Pairing with other tools
If you need to make your own QR after decoding one, use the QR code generator on the same site. If the source image is HEIC from an iPhone, convert it with the HEIC to JPG tool first. To get a clear screenshot of a webpage for scanning, the website screenshot tool grabs any URL as a full-page image.