QR Code Reader
Read QR codes and barcodes from screenshots, photos and PDFs — no camera or app needed. Every code in the image is found and explained: links get a safety check, Wi-Fi codes show the network and password, UPI codes show who you would pay. Images are decoded in your browser and never uploaded.
Screenshots, photos or scanned PDFs — several files and several codes per image are fine. Or paste a screenshot with Ctrl+V.
🔒 Processed on your device — nothing is uploaded.
Scan QR Codes from Images — Without a Camera
Most QR scanners want your camera. But the code you need is often already on your screen — in a screenshot, a WhatsApp image, an email attachment, a PDF invoice or a photo you took earlier. This free online QR code scanner decodes it straight from the image: drop the file, paste a screenshot or pick a photo and every QR code and barcode in it is found, numbered on the picture and explained in plain language. It is also a quick way to read a barcode from an image or check a UPI QR code before you pay.
It reads QR codes (including Micro QR and rMQR), Data Matrix, Aztec, PDF417, MaxiCode and the common barcodes: EAN-13, EAN-8, UPC-A, UPC-E, ISBN, Code 128, Code 39, Code 93, Codabar, ITF and GS1 DataBar. Damaged, rotated, mirrored and inverted (light-on-dark) codes are retried automatically.
How to decode a QR code from a screenshot or photo
- Add the image — drag it onto the box, click Choose images, press Ctrl+V after taking a screenshot, or tap Take photo on a phone. PDFs are scanned page by page.
- Find your code — each detected code gets a numbered box on the image and a matching result card with its type and content.
- Use the result — copy the text, reveal and copy a Wi-Fi password, save a contact as
.vcfor an event as.ics, or open a web link after checking it.
What the reader understands
- Web links — the full address is always shown, with warnings for link shorteners, look-alike (punycode) domains, raw IP addresses, unencrypted http and app downloads.
- Wi-Fi — network name, security type, hidden flag and the password, correctly unescaped.
- UPI payments — payee UPI ID, payee name, amount and note from
upi://paycodes, with AutoPay mandates flagged. - Contacts and events — vCard and MECARD contacts, calendar events, email, SMS, phone numbers and map locations.
- Product barcodes — EAN/UPC check digit and the GS1 country prefix (890 is India), plus GS1 data such as batch and expiry dates.
- Everything else — plain text, 2FA set-up codes, crypto addresses and binary data shown as a hex dump.
Stay safe with QR codes
Fake QR codes (sometimes called quishing) stuck over real ones on parking meters, posters and shop counters send people to look-alike login and payment pages. This reader never opens anything by itself and never turns script or data links into clickable links. Before you pay with a UPI QR code, compare the payee name and UPI ID shown in your UPI app with the shop or person you expect — and remember that you never need to scan a code or enter your UPI PIN to receive money.
Tips when a code isn't found
- Crop the image so the code fills more of it, especially for small codes in large screenshots.
- Use a sharp, evenly lit photo; glare and motion blur hide the small squares.
- Keep the quiet zone — the white margin around the code — visible.
- Switch Look for to just QR codes or just barcodes if a busy image contains many patterns.
Private by design
Decoding runs in your browser with the open-source ZXing library compiled to WebAssembly. The version-pinned decoder downloads from jsDelivr on first use with integrity checks; the CDN receives asset requests, not your images or decoded data. Internet access is needed for uncached decoder files. Images, decoded links and passwords stay on your device, and the page never asks for camera access. Need to make a code instead? Use the QR Code Generator. To pull printed text out of an image use Image to Text, and to turn business cards into contacts use the Business Card Scanner.