What This Tool Does
Drop in a photo or a screenshot, and every QR code inside it is found and decoded — entirely in your browser. A WebAssembly module compiled from Rust does the detection and decoding inside your browser tab, so the image itself, and whatever it contains, is never uploaded anywhere.
How to Use It
Pick a mode at the top. Upload works from an image: drop a file onto the upload area, or click to browse for one. Camera scans live: switch to it, allow camera access, and point your device at a QR code — it is read the moment it comes into view, and the camera then switches off. Either way, every QR code the decoder finds appears in the results list a moment later, each with its raw decoded text, a Copy button, and — for recognized formats — a friendlier view of what it contains. If an uploaded image has no readable QR code in it, a quiet note says so instead of showing an error.
Read QR From a Screenshot or Photo
Point this tool at almost any image and it looks for every QR code inside it, not just one. That matters for a screenshot of a page with several codes side by side, or a single photo covering a bulletin board or a product box with more than one code printed on it — each gets its own entry in the results, decoded independently.
The results aren't just raw text, either. This tool recognizes several common QR content formats and renders them accordingly: a WiFi QR code shows the parsed network name, password and security type instead of a single unreadable string; a web address becomes a clickable link; and a contact, email or phone-number code shows its fields labeled instead of packed together. The raw decoded text is always available too, in a plain monospace block, so nothing about the smarter view hides what the code actually contained.
Limits
Images are accepted up to 100 megapixels. Anything larger is rejected immediately with a clear message, so a browser tab never stalls trying to process an image far bigger than any QR code needs to be legible.
Where to Go Next
Need to create a QR code instead of reading one? The QR Code Generator builds codes for URLs, WiFi networks, vCard contacts and more, with error-correction and color options and a choice of SVG or PNG download. Working with a retail product or a shipping label instead of a QR code? The Barcode Generator covers EAN-13, UPC-A, Code 128 and more, the same client-side way.