Upload, drag in or just press Ctrl+V to paste a screenshot, and the URL or text stored in the QR code is read straight out; you can also use your camera to scan a code in the real world. All decoding happens locally in your browser and no image is uploaded.
About QR code scanning
Decoding a QR code is not the same as scanning one with your phone
When your phone scans a code it usually jumps straight to the content, and the step in between is invisible to you. This page only does the first half: it turns the pattern back into the text inside it and shows you that text as-is, with no redirect of any kind. That makes it useful in three situations — you only have an image and nothing physical to scan (a screenshot, a picture someone sent you, a figure in a document); you want to see exactly where a URL points before opening it; or you need to copy the text out. Conversely, if you just want to scan to pay or to add a contact, your phone's own scanner is faster and this page will not help.
Why a code fails to decode, in order of likelihood
From most common to least: the pattern is incomplete — a corner was cut off in the screenshot, or one of the three square finder patterns is cropped away or covered, and the algorithm can no longer square the code up; there is no quiet zone — an image cropped tight against the edge of the code often cannot be read at all; that white margin is a requirement for locating the code, not decoration; it is too small or too blurry — photos of screens, and images recompressed by repeated forwarding, smear the module edges into each other; the colours are inverted — a light pattern on a dark background; this page automatically retries inverted, but some extreme colour combinations still fail; a PNG with a transparent background — a black pattern on transparency looks fine in some apps but has no white behind it, so this page fills white in first and then decodes; it is not actually a QR code — barcodes, WeChat mini-program codes and DataMatrix are all something other than QR Code, and this page reads QR only.
The most effective fix is to crop a larger, straighter image with a white margin all around the code and try again. If the original came from a web page, take the screenshot again with the code larger — that succeeds far more often than retrying the same blurry image. To find out whether a PNG really has a transparent background, run it through PNG Transparent Background Checker.
If it decodes to a URL, read it before you open it
A QR code carries no security of its own: anyone can encode any URL into one and stick it anywhere, which is what QR-code scams are built on. This page lists the decoded URL as-is and pulls the domain out separately, precisely so that you can look before you click — is the domain the one you expected, is it an internationalised domain starting with xn-- or one using look-alike letters to impersonate a well-known site, and is there a long trail of tracking parameters. When you cannot read the percent-encoded part, paste it into the URL Decoder to turn it back into readable text. This page never opens any link automatically — whether to visit it is your call.
Need to go the other way and generate a QR code
This page only decodes. To turn a URL or some text into a QR code, use the QR Code Generator, which produces static codes that never expire and can be downloaded as PNG or SVG. The two pages handle the same thing in opposite directions: the generator encodes text into a pattern, this page turns a pattern back into text — so pasting what this page decodes into the generator gives you a new code with the same content but a cleaner image, which is a workable way to repair a blurry QR code, provided it can still be decoded in the first place.