Decode a QR code inside any image or screenshot — right in the browser

window.BarcodeDetector (Chrome/Edge/Android) with an honest fallback on unsupported browsers.

Quick answer: Scan a QR code from a photo or screenshot — decoded text appears instantly with one-tap copy. Uses your browser's built-in Barcode Detector; nothing uploaded.

Pick a photo or screenshot containing a QR code — decoding happens in your browser.
-->

QR from a photo: your four options

MethodWorks on saved photos?Install needed?Image leaves device?
Phone camera appNo — live lens onlyBuilt inNo
Google LensYesYes (app)Yes — cloud processed
Desktop QR appsYesYesVaries
This scannerYes — screenshots tooNo — browser tabNo — decoded locally

Worked example: the router label, decoded

The sticker on the back of a router carries a WiFi QR code that a live camera struggles with — wrong angle, glossy print, tight corner. Photograph it instead and drop the photo here. The decoder reads it and returns the raw payload:

WIFI:S:HomeNet_5G;T:WPA;P:br4ve-c0yote-42;;
→ SSID HomeNet_5G, security WPA, password br4ve-c0yote-42.

Same flow rescues conference-badge vCards, warranty stickers, and QR codes screenshot from a chat. Making codes rather than reading them? The QR code generator, WiFi QR generator and batch generator cover the other direction — all in the link tools family.

How to use

  1. Pick an image containing a QR code.
  2. The decode result appears with a Copy button.
  3. Unsupported browser? You get an honest notice, not a fake scan.

About this tool

Got a QR code in a screenshot, a photo of a poster, or an image someone sent you? Drop it here and the built-in Barcode Detector of your browser reads it in milliseconds — no camera permission, no upload, no server round-trip. The decoded text appears with a one-tap copy button, and multiple codes in one image are all reported. This uses the BarcodeDetector API that ships in Chrome, Edge and Android browsers; if your browser does not have it, we say so honestly and point you to alternatives instead of pretending to scan. The image is decoded on your device and never leaves it. Everything runs locally in your browser — nothing is uploaded, nothing is sent to any server, and closing the tab erases it all.

TL;DR

Drop in an image, get the decoded text. Saved photos and screenshots both work, the decode runs in your browser (nothing uploaded), and no signup is involved. Blurry or tiny images fail — give the decoder roughly 300 px per QR side, straightened and unclipped.

FAQ

Which browsers work?
Chrome, Edge, Opera and Android browsers ship BarcodeDetector; Firefox and Safari do not yet — we detect and tell you honestly.
Is my image uploaded?
No — createImageBitmap + BarcodeDetector run entirely on your device.
Multiple QR codes in one image?
All of them are reported, each with its own copy button.
My photo fails to decode?
Try a tighter crop, more light or higher resolution — blurry or tiny codes are genuinely unreadable.
Camera scanning?
That is our separate QR Scanner tool which uses getUserMedia — this page is for image files.
Does it work on screenshots?
Yes — that's the main use-case. A screenshot keeps the QR's sharp edges, which is what the decoder's finder patterns need. Cropped, un-blurred screenshots from chats, galleries or PDFs read reliably.
Why does a blurry or tiny image fail to decode?
The decoder locates three finder squares before it can read any data. Under roughly 300 px per QR side, heavy blur, or a clipped finder square, that first step fails. Re-shoot closer, straighten the angle, or scale the image up and try again.

Rate this tool

Your rating stays in this browser (local storage) — nothing is sent to any server.