QR Code Reader
Decode one or many QR codes and common barcodes from images or a live camera.
Your files never leave your device. Everything runs in your browser.
What QR Code Reader does
QR Code Reader scans QR codes and common barcodes using your camera, or decodes them from an image file or a pasted screenshot. It recognises the usual daily cases — links, Wi-Fi networks, contacts, email addresses and phone numbers — and offers the right action for each, such as copying a Wi-Fi password or saving a contact as a .vcf file.
Besides QR codes, the decoder handles Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, ITF, Codabar, Data Matrix, PDF417 and Aztec where the browser's built-in detection engine supports them, falling back to the jsQR decoder for QR codes when it does not.
Every scan is processed locally: camera frames and image files stay on your device, and a scan history keeps recent results handy while the page is open.
How to use QR Code Reader
- Point the camera at a code and click Start camera. Grant the browser permission when asked, and use Switch camera for the rear or front lens.
- Alternatively, drop an image containing a code onto the page, or paste a screenshot — useful for codes received in chat or email.
- Wait for the result card, which is classified automatically (link, Wi-Fi, contact, email or phone).
- Use the offered action: copy the Wi-Fi password, save the contact card, or open the link after reading the safety warning.
- Check the scan history section to compare or re-copy earlier results from the session.
Features
- Camera scanning with torch control when the device supports it, plus image and clipboard decoding.
- Support for QR codes and common 1D and 2D barcode formats, using the browser's native detector where available and jsQR as a fallback.
- Automatic retries with contrast handling, inverted colours and 90°/180°/270° rotations to rescue difficult scans.
- Detection of up to eight QR codes in a single image.
- Smart result classification for Wi-Fi networks (copy SSID and password), vCard contacts (.vcf download), links, email and phone numbers.
- A per-session scan history so you can compare several codes without rescanning.
Tips and common mistakes
- For codes on screens, take a screenshot and decode the image — it is usually faster and sharper than pointing a camera.
- Wi-Fi results include the password, so copy it and connect without hunting for the network's paper label.
- If a contact card looks wrong, save the .vcf and open it in your contacts app to review before keeping it.
Frequently asked questions
Why does the camera not start?
Camera access requires a secure (HTTPS) connection and your explicit permission. If the button does nothing, check that permission is not blocked for this site in your browser settings, and close other apps that may be using the camera.
Which barcode formats can it read?
QR codes always work through the bundled decoder. Formats such as Code 128, EAN-13, UPC, ITF, Codabar, Data Matrix, PDF417 and Aztec work when your browser provides the native barcode detection API, which currently means Chromium-based browsers on most platforms.
Is it safe to open a link from a QR code?
Treat decoded links like links from an email: the destination is shown before you open it, and the tool warns you first. Only open links from codes you trust — QR codes in public places can be tampered with.
Why is a blurry code not detected?
Try to fill the frame with the code, hold the camera steady and avoid glare. With images, crop tightly around the code using the Crop Image tool and scan the crop. The decoder also retries inverted and rotated versions automatically.
Can I read several codes at once?
When scanning an image, the reader looks for up to eight QR codes and lists what it finds. Camera scanning detects codes one at a time as they come into view.
Related image tools: Image Compressor, Image Converter, Image Resizer.
Camera frames and image files are decoded on your device. Nothing is uploaded, and the scan history disappears when you close the page. To generate your own codes instead, see Barcode Generator.