QR Code Reader
See what a QR code says before you act on it.
- 100% freeNo account, no daily quota, no paid tier.
- Nothing is uploadedFiles are processed on your device and never reach a server.
- No catch on the outputNo watermark, no forced downscaling, no size cap.
- Updated in the openEvery fix and every new tool is written down on the changelog page.
What this tool does
Drop in a picture and this page scans the QR code inside it and tells you what it says. It handles the ordinary case — reading a QR code from a screenshot, a photo of a poster, or a page of a PDF invoice you exported as an image — and it handles the awkward one, where a single screenshot contains two or three codes at once. Every code it finds is outlined and numbered on your image, and clicking an outline switches the panel to that code.
The picture never leaves your computer. Decoding runs entirely in the browser: the file is read into a canvas, the pixels go to a decoder compiled into this page, and the result is drawn on screen. No upload, no queue, no account, no size limit beyond what your own machine holds. That matters more here than in most tools, because the things people scan are often the things they would not want on someone else's server - a Wi-Fi password taped to a router, a payment code, a boarding pass.
How to use it
There are three ways to read a QR code from a picture here: drag the image onto the page, click to pick a file, or press Ctrl+V (Cmd+V on a Mac) with a screenshot on your clipboard. Pasting is usually fastest, because the reason you are here is that a QR code showed up on a screen you cannot point a phone at. JPG, PNG, WebP, GIF, BMP, AVIF and HEIC all work, and so does a photo straight off a camera — the code does not need to be cropped out first.
The result panel reads the code rather than dumping it. A QR code is rarely plain text; most carry a structured record. A Wi-Fi code arrives as the single string WIFI:T:WPA;S:MyNet;P:hunter2;; and is shown as three rows - network name, password, security type - each with its own copy button. Contact cards (vCard and MECARD), calendar events, email drafts, phone numbers and map coordinates are broken out the same way. The raw string always stays at the bottom of the panel, because no parser is perfect.
For links, the domain is printed on its own line in large type, and the button that opens it sits below. That order is deliberate: the usual reason to read a QR code on a computer rather than scan it with a phone is that you want to know where it goes without going there. Three things are flagged automatically - a host written in Punycode (the xn-- prefix, which is how a look-alike domain hides Cyrillic or Greek letters that resemble Latin ones), a bare IP address instead of a domain, and a known link shortener, whose real destination sits behind a redirect this page cannot follow offline.
Things that go wrong
When the decoder finds nothing, the picture is usually too small or too soft. A QR code needs its three corner squares to be resolvable; below roughly 100 pixels across that stops being reliable, and this page already tries a 2x upscale before giving up. Cropping tightly around the code fixes most failures. Blur from a hand-held photo cannot be recovered - retake it steady rather than zooming in on the blurry copy. Low contrast is the other cause: a code in light grey on white, or overprinted on a photograph, may not carry enough signal. Inverted codes (light modules on a dark background) are handled automatically. Damaged codes sometimes still read, because QR carries Reed-Solomon error correction - up to about 30 percent of modules at the highest level - but a code with a logo punched through the middle and a torn corner will usually fail. This page is a QR code decoder only; one-dimensional barcodes such as EAN-13 or Code 128 are a different symbology.
Background: where QR codes came from
The QR code was designed in 1994 by Masahiro Hara and his team at Denso Wave, a subsidiary of the Japanese supplier Denso, to track parts moving through Toyota production lines. Ordinary barcodes held about twenty characters and had to be read in one orientation; the team wanted something a scanner could find at any angle, which is why three large squares sit in three of the four corners - a reader locates those first, works out the rotation, then reads the data. Denso Wave holds patents on the format but chose not to enforce them for standard QR use, and the specification was published as ISO/IEC 18004 in 2000. The encodings layered on top are conventions rather than parts of that standard: the WIFI: string was popularised by Android, MECARD came from NTT DoCoMo, and vCard is defined separately in RFC 6350.
Where people use it
The everyday case for an image-based QR code scanner is a code on a desktop screen: a login code in a web app, a two-factor setup code, a payment request in an email, a conference badge in a PDF. The second is verification - you made a code with the QR code generator and want to confirm it encodes exactly what you meant before it goes to print, where a mistake costs a reprint. The third is caution: a code on a parking meter, a restaurant sticker or an unexpected letter, read here so the destination is visible as text before anything opens. Office workers use it to pull the network name and password off a guest Wi-Fi card. If your image is a PDF page, run it through PDF to image first; if the photo is huge, cropping around the code helps more than anything else.
Frequently asked questions
Is my image uploaded to a server?
No. The file is read and decoded inside your browser and never leaves your computer. You can confirm it by opening the page, disconnecting from the network, and reading a code anyway.
Can I scan a QR code from an image instead of using a camera?
That is exactly what this page is for — you upload or paste the picture and it reads the code. There is no webcam mode, and that is deliberate: on a phone the built-in camera app already scans QR codes better than a web page can.
Why does it say the link uses a shortener?
Because a shortened link hides its real destination behind a redirect, and following it would need a network request from your machine. The warning says the domain shown is not the final one.
How do I read a QR code from a picture that will not decode?
Crop the picture tightly around the code and try again. Most failures are a code that is too few pixels across or too blurry for the three corner squares to be located.
Does this QR code reader handle barcodes too?
No. This page decodes QR codes only. One-dimensional barcodes such as EAN-13 and Code 128 use a different symbology.