QR Code Reader

Decode a QR code from a screenshot, photo or pasted image — no camera needed.

Processed locally — nothing is uploaded

About QR Code Reader

Decoding tries both polarities, so a code screenshotted from a dark-mode app reads as reliably as a printed one, and the located code is outlined on the image so a busy photo shows exactly what was read. Links are displayed with their destination named first rather than opened, because reading a code and trusting it are different steps.

A phone camera scans the code in front of you; this reads the codes you already have as pixels. That turns out to be a different job with different inputs: the QR someone sent in a chat, a screenshot of a boarding pass, a photo of a poster taken weeks ago, a code embedded in a PDF flyer, or one displayed on the very screen you are sitting at — where pointing a camera at your own monitor produces glare and moiré, and a screenshot pasted straight in produces a clean scan.

Under the hood a QR code is found before it is read. The three large squares are finder patterns that give the decoder position and orientation, the alternating timing lines establish the module grid, and Reed-Solomon error correction reconstructs data from a code that is partially dirty, damaged or obscured. This is why a code with a logo stamped over its centre still decodes — and why one with its quiet zone cropped off often does not: the decoder loses the boundary before error correction ever gets a chance.

The safety property is the reason to decode rather than scan-and-open. A QR code is nothing but a string, that string can point anywhere, and stickers pasted over legitimate codes on parking meters and restaurant menus are a documented scam precisely because cameras open links so eagerly. Reading the code as text first — with the destination domain shown before anything is visited, and the option to hand a suspicious link onward for closer inspection — is the difference between deciding and hoping.

Learn how this works

Frequently asked questions

Why won't my image decode?

The usual causes in order: the code is too small in the frame (crop closer, keeping the white margin), part of it is blurred or behind glare, the quiet zone around it has been trimmed away, or the image contains several codes and the decoder locked onto none cleanly. A screenshot nearly always beats a photograph of a screen, and re-cropping to a single code with margin solves most stubborn cases.

Can it read barcodes too?

No — this reads QR codes only. One-dimensional barcodes such as Code 128 or EAN are a different symbology needing a different decoder. If you need to produce a barcode rather than read one, the Barcode Generator covers Code 128.

A WiFi code shows the network password in plain text — is that right?

Yes, and it is worth understanding why: the password was always in the code, stored as plain text for any scanner to read. Displaying it here just makes visible what every phone that ever scanned it already received. If seeing it in print is uncomfortable, that is a fact about WiFi QR codes, not about the reader.

Is the image uploaded to be scanned?

No. Everything runs locally in your browser using standard web APIs — your text, files and inputs are never uploaded to a server, so the tool works even offline once the page has loaded.

Pro Tips

  • Paste screenshots directly with Ctrl+V — no need to save a file first, and screenshots decode far more reliably than photos of screens.
  • Keep the white margin when cropping. The quiet zone is part of the code, and trimming it is the most common self-inflicted decode failure.
  • Check the destination hostname against what you expected before visiting any decoded link — a code on a sticker is exactly as trustworthy as whoever printed the sticker.
  • If an image holds several codes, crop to one at a time; the outline drawn on the preview confirms which code produced the result.
  • Decode your own generated codes once before a print run — it is the cheapest possible proof the printed artwork will actually scan.

Common Use Cases

  • Checking where a QR code from a poster, flyer or parking meter actually leads before opening it on your phone.
  • Extracting WiFi credentials from a code someone sent as a picture instead of typing the password from a photo.
  • Reading a code inside a PDF or web page that a camera cannot easily be pointed at.
  • Recovering the content of a code you generated earlier when the original text is long gone.
  • Verifying a proof or mock-up scans correctly, paired with the QR Code Generator on the same site.

How It Compares

A phone camera is faster for codes out in the world and opens links the instant it reads them, which is precisely the behaviour that quishing scams exploit. Google Lens handles images but sends them to Google's servers to do it. Reading in the tab keeps the image on your machine and — more importantly — separates decoding from acting, showing you the destination before anything gets visited.

Related tools