A camera cannot read a code that is already on your screen
The classic QR scan assumes the code is printed or displayed somewhere in front of you. The case that sends people searching is different: the code arrives as an image — a screenshot a colleague sent, a ticket in an email, a QR on a slide in a recorded talk, a photo of a restaurant table. Holding a phone camera up to a monitor works, barely, and only if you have a second device. If you are on that device already, you need the image decoded, not photographed.
On a phone, the built-in routes have matured: Google Lens reads codes from the gallery on Android, and the Photos app recognises QR codes in pictures on an iPhone. Neither helps on a desktop, where the usual advice is to upload the picture to a scanner website — which is exactly the step this page removes. Drag the file in, or paste the screenshot straight from the clipboard with Ctrl+V.
Why the result appears as text first
A QR code carries nothing but text. Everything about its safety lives in that text — which domain the link points at, whether that domain is the one you were told it would be, whether there is a link at all. A sticker placed over a legitimate code, or a code in a phishing email, works only because the scanning device opens the destination without showing it.
So this decoder does the opposite: the raw content is the result. If it is a web address, the domain is called out before anything is clickable, and the link opens only when you decide to open it. A code containing WIFI:T:WPA;S:... is a Wi-Fi login, BEGIN:VCARD a contact card, geo: a location — seeing the prefix tells you what you are holding before you act on it.
What the decoder can and cannot do
Decoding happens locally, in JavaScript on this page, so there is no network round-trip and no upload — the same guarantee the other tools on this site make. It reads standard QR codes in screenshots and photos of everyday phone and computer sizes, including codes at an angle or surrounded by other content, and it retries inverted colour schemes. It does not read barcodes, and a code that is blurred past legibility or cropped into its quiet zone will fail — a tighter crop is the fix.
If you need the other direction — making a code rather than reading one — the QR code generator builds static codes for links, Wi-Fi and contacts on the same no-upload terms.
Questions
Does the image leave my browser?
No. The picture is decoded by JavaScript on this page; no request carries your file or your clipboard image. The page loads like any page does — the cookieless analytics are disclosed on the About page — but your screenshot is never sent anywhere.
Is it safe to scan a QR code?
The code itself is only a container for text. The risk is where a link inside it leads. This page shows the decoded content first and opens nothing automatically, so you can check the domain before deciding to visit it.
My phone's camera cannot scan it — why?
A camera scans what is in front of the lens. A code that arrives as a screenshot or picture inside a message needs image decoding instead. On Android, Google Lens can read it from the gallery; on an iPhone, the Photos app can recognise it and offer to open it. On a computer, this page is the direct route.
What can be inside a QR code?
Most often a web address, but also plain text, Wi-Fi credentials (recognisable as WIFI:T:WPA;...), a contact card beginning with BEGIN:VCARD, or map coordinates. The largest QR version holds 2,953 bytes of raw data.
Why does my image fail to decode?
Usually the code is too small or blurry within a large screenshot, the crop cuts into the quiet zone (the empty margin around the squares), or the colours are too low-contrast. Cropping the image closer around the code fixes most failures.