How to use
Drag an image that contains a QR code onto the box above, click it to choose a file, or copy a screenshot and paste it into this page with Ctrl+V. The QR code is found and read as soon as you add the image, and its position is outlined in green on the preview. The contents are laid out according to their format, with a copy button for each item. Expand “Show raw text” to see the exact string stored in the code. Files can be up to 20 MB and images up to 50,000,000 pixels.
The jsQR reading library is downloaded from this site after you add an image and runs in the browser. Decoded Wi-Fi passwords and contacts are not saved separately.
When you need to read a QR code without a camera
- A QR code on your own phone’s screen: you can’t point your phone’s camera at a code shown in an app or web page on that same phone. Take a screenshot and add it here.
- A QR image sent by message or email: save or copy the image and add it — no printing and no second device needed.
- A QR code you see on your computer: capture it and paste it here to check the link or Wi-Fi details right on your computer.
- A photo you took earlier: QR codes in photos of posters, business cards or notices can be read too.
Supported content formats
A QR code is just a container for a string of text, so what it means depends on how that text is written. This tool recognizes the widely used formats and lays them out clearly.
- Web address (URL): addresses starting with
http://orhttps://. The domain and the full address are shown separately. - Wi-Fi login: the
WIFI:S:network name;T:WPA;P:password;;format. You’ll see the network name, security type and password, with the password hidden at first. - Contact: name, organization, phone, email and address from vCard (
BEGIN:VCARD) and MECARD (MECARD:). - Email: recipient, subject and message from
mailto:andMATMSG:. - Phone number and text message:
tel:,SMSTO:andsms:. - Location: the
geo:latitude,longitudeformat, with a link to view it on a map. - Any other text: if none of the formats above match, the raw text is shown as is.
The structure and encoding of QR codes are defined in the international standard ISO/IEC 18004. The content formats above aren’t part of that standard — they’re conventions shared by smartphone scanners, documented in the ZXing reference listed under sources.
If the code won’t read
This tool first uses the browser’s built-in QR detection (BarcodeDetector) when it’s available. If it isn’t, or it finds nothing, the image is read again with the open-source jsQR library. With jsQR, the image is first resized: a longer side over 1,200 px is scaled down to 1,200 px, and a longer side under 400 px is scaled up to 1,200 px. If the resized image can’t be read, it tries the original size (longer side up to 2,400 px). If that fails too, it adds a white margin around the image at the first size and tries once more. The retries also look for inverted QR codes (a light pattern on a dark background). If it still won’t read, try the following.
- Crop the image to the QR code, leaving a little space around it. Lots of other content makes the code harder to find.
- For photos, retake the picture so it isn’t blurry or tilted and the QR code fills more of the frame.
- Make sure glare or shadows don’t cover the code.
- Images that have been shrunk too much blur the pattern. Use the original image.
Watch out for QR code phishing (quishing)
Because you can’t read a QR code by eye, it can be used to steer you to a fake site. The U.S. Federal Trade Commission (FTC) has warned about fake QR codes stuck on parking meters and codes sent by text or email with excuses like a delivery problem or unusual account activity. That’s why this tool never opens links automatically and shows you the domain and full address first. It also flags an address that uses unencrypted http, has a part of the domain starting with xn-- (an internationalized domain), uses an IP address, or contains an @ before the domain. If a QR code rushes you to pay, log in or change a password, don’t use it — check through an official website or phone number you already know.