QR Code Scanner

Upload an image containing one or more QR codes — or scan live with your camera — to decode them instantly. Everything happens locally in your browser; nothing is ever uploaded.

Files never leave your device

Camera scanning isn't available here — it needs a secure connection and a camera.

Drop an image here, click to browse, or paste

JPGJPEGPNGWEBPGIFBMP

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.

Tip: A photo taken at an angle or from a bit of a distance usually still works — the decoder looks for the code's finder pattern first and corrects for a fair amount of rotation and perspective before trying to read the data underneath it.

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.

Frequently asked questions

Is my uploaded image sent anywhere?
No. The image stays on your device and is decoded by a WebAssembly module running inside your own browser tab. Nothing about the picture or its contents is ever sent to a server.
Can it read more than one QR code from a single image?
Yes. Every QR code found in the picture is detected and decoded, and each one appears as its own numbered result — handy for a photo of a page or a poster carrying several codes at once.
Does it use my camera to scan?
Yes. Switch to the Camera tab to scan live through your device camera — point it at a QR code and it is decoded the moment it comes into view, then the camera turns off. You can still upload a screenshot or photo instead. Either way, every frame is processed on your device and never uploaded.
Is there a size limit on the image I upload?
Yes — up to 100 megapixels. An image beyond that is rejected up front with a clear message, rather than letting your browser tab stall trying to process something far larger than any QR code needs to be readable.
What image formats can I upload?
JPG, PNG, WebP, GIF and BMP are all accepted, covering a typical phone screenshot as well as a photo straight from a camera.