QR Code Scanner (Decode Online)

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.
QR code image
Drag an image here, or click to choose a file

Or just press Ctrl+V to paste a screenshot · PNG / JPG / WebP / GIF / BMP

Camera
Preview of the QR code image to be decoded
Plain text
Notes:
1. Decoding starts as soon as you pick an image — there is no button to press.
2. When a code cannot be read, the page tells you why and what to change, instead of just saying “failed”.
3. If one image holds several QR codes, only one of them is returned — crop them apart and decode them one at a time.
4. A QR code stores the text exactly as it was put in, so a decoded URL is not a safe URL, and this page never opens it for you.

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.

FAQ

Why won't my QR code decode, and what can I do?

The most common causes are part of the pattern being cropped away (especially one of the three square finder patterns), no quiet zone around the code, and an image that is too small or too blurry. After those come inverted colours and PNGs with a transparent background; this page retries both of them automatically, but success is not guaranteed. The fix is to take a new screenshot that is larger, complete and has a white margin around the code — far more effective than retrying the same blurry image. The section “Why a code fails to decode, in order of likelihood” above lists the full checklist in order.

Is the image uploaded to a server?

No. Once the page has loaded, decoding is done entirely by local JavaScript in your browser; neither the image nor the decoded content ever leaves this device. You can disconnect from the network and try again — it still works, which is also the simplest way to tell whether an online tool really uploads your files.

Can I decode a screenshot by pasting it directly?

Yes, and it is the least fiddly way to do it. Take your screenshot, then press Ctrl+V (Command+V on macOS) anywhere on this page — there is no need to save it as a file first. Images copied out of WeChat, QQ or a browser work the same way; all that matters is that the clipboard holds an image. If pasting does nothing, the clipboard usually holds a file path or a chunk of HTML rather than the image itself, in which case drag the file in or click to choose it.

Can it read WeChat or Alipay payment codes?

It can read the string inside, but the string is of no use to you. A payment code holds a signed, platform-issued link that only the corresponding app can process; opening it in a browser generally reports it as invalid or lands on an empty page. This page shows it as ordinary text and does not interpret it.

One image has several QR codes — can it read them all?

No. It returns exactly one of them, and which one is not predictable: the decoding library locates a single code per pass, by design. For an image like that, use an image editor or Online Image Cropper to crop each code into its own image, then decode them one at a time.

Can it read barcodes or WeChat mini-program codes?

No. This page supports QR Code only. The barcode on a product is a 1D code, a WeChat mini-program code is a circular proprietary format, and DataMatrix and PDF417 are also often loosely called “QR codes” — none of them share QR Code's encoding rules, so this page cannot read them and will report “No QR code found in the image”.

Does it work on a phone? Can I scan with the camera?

Yes. In a mobile browser, tapping “Start camera scan” asks for camera permission, uses the rear camera by default and stops on its own once a code is read — just point it at the code. Two things to know: the page must be served over https for the browser to allow camera access at all (this site is); and if you denied permission before, you have to allow it again in the browser's site settings. If you would rather not grant it, uploading or pasting a picture from your gallery works just as well.

Can I just open the URL it decodes?

Read it first. Anyone can generate a QR code, the pattern itself guarantees nothing, and QR-code scams rely on exactly that. This page deliberately does not redirect; it shows the full URL alongside the domain extracted from it, so you can confirm the domain is the one you expected. Stay sceptical of domains you do not recognise, links carrying a long trail of tracking parameters, and pages that ask for account credentials or payment details.