QR Code Reader
Scan a QR code from an image or your camera and read its text, link, Wi-Fi credentials, vCard contact or email address, decoded locally with jsQR.
🔒 Decoded entirely in your browser — the image is never uploaded.
Up to 25.0 MB a file. A picture over 16.8 megapixels is scaled down to that before it is read.
Drop a QR code image here or click to choose
Read a QR code from an image
Drop in a screenshot or photo of a QR code and get the text it encodes, decoded right in your browser. Or press 📷 Scan with camera and hold the code up to it: the same decoder reads the camera frame by frame and switches the camera off as soon as it finds a code. The image is drawn to a canvas and scanned locally with jsQR — nothing is uploaded. An iPhone HEIC photo or a TIFF scan is opened first, in any browser, and a multi-page TIFF is read page by page until a code turns up. A very large photo is first scaled down, keeping its shape, before it is read, and the limits are stated under the drop zone.
Recognizes what the code contains
Beyond plain text, the reader detects and labels common payload types: web links, Wi-Fi credentials (SSID, security and password), contact cards (vCard) and email addresses. Links are shown as text and never opened automatically, so a scanned code can never navigate you somewhere unexpected. Read one code after another and, once there is an earlier scan, a Scanned this session, newest first list keeps the recent ones with their kind, where each came from (the file name, the camera or the sample) and a copy button of its own, until you press Clear the list. The list is held only in this tab and not saved, so closing the page forgets it.
Frequently asked questions
Is my image uploaded to a server?
No. The photo is decoded entirely in your browser using an offscreen canvas — it never leaves your device.
Why is a scanned link not clickable?
QR codes are a common phishing vector, so a decoded URL is shown as plain text. Copy it and open it yourself only if you trust the source.
What if no QR code is found?
It reads QR codes only — a 1D barcode (EAN, UPC, Code 128) or a Data Matrix is not found by design. Use a clearer, well-lit image where the whole code is visible with a little margin around it. Blurry, cropped or angled photos are harder to decode.
Can I scan a QR code with my camera?
Yes. Press “📷 Scan with camera”, allow the camera when the browser asks, and hold the code up to it: it is read as soon as it is in view, the camera switches off, and the result appears just as it would for a dropped photo. On a phone it asks for the back camera. If the camera is blocked, missing or in use by another app, the page says which. “Stop camera” turns it off at any time, and leaving the page does too.
Does it keep the codes I scanned earlier?
Yes, while the page is open. Every code you read — from a dropped image, the camera or the sample — goes to the top of “Scanned this session, newest first”, which appears once there is an earlier scan, with its kind, where it came from and a copy button of its own; the most recent ones are kept. “Clear the list” empties it. Nothing is saved, so closing the page forgets them.