Skip to content
QRMakery

Scan and Check a QR Code From an Image

Paste a screenshot or drop in a photo. You get the exact text the code carries, the link it opens before you open it, and a measurement of whether the code still has enough detail to scan anywhere else. It is decoded in this tab and never uploaded.

Drop a QR code image here

Or press Ctrl + V to paste a screenshot, or choose a file.

The image is read on your device. It is never uploaded.

Laptop extracting and decoding a QR code from an uploaded photograph
QR scanner finding codes in a phone screenshot, photograph, and document
Clear, rotated, and blurry QR images compared under a diagnostic magnifier

What Pixels per Module Tells You

A QR code is a grid of small squares called modules. The reader measures the symbol inside your image, divides its width by the module count, and reports how many pixels each module got. That single number is what decides whether the code survives being resized, printed, or photographed off a screen.

  • 4 and above. Room to spare. It will take a resize or a reprint without complaint.
  • 2 to 4. It read here, on a clean file, with no hurry. A phone camera at an angle in poor light is a different test. Get the original if you can.
  • Under 2. Running on luck. This copy is not one to print or forward.

It is worth saying what this number is not. It measures the copy you uploaded, not the code itself. A perfectly good code saved badly scores poorly here, and the fix is to find the original file rather than to remake the code.

One caution about reading it as a pass mark. We swept every whole pixel width from 140 down to 34 and found codes that failed at one width and read at a narrower one, so a low score is not proof that nothing can be recovered. Scanning a QR code from a screenshot has the measurement and what to try instead.

When Nothing Is Found

The decoder reports failure without a reason, so this page will not make one up. What it can tell you is the size of the image it looked at and that it tried the image both normally and inverted. The rest is a checklist, ordered by how often each one turns out to be the answer.

  1. 1The white margin around the code was cropped offA QR code needs a clear quiet zone, four modules wide, on all four sides. Cropping tight to the black edge is the single most common way to break an otherwise perfect code. Recrop with the margin included.
  2. 2The image is too smallThe reader shows the pixel size of whatever you gave it. A dense code in a 150 pixel thumbnail has under two pixels per module, and no decoder can separate them. Find the original rather than enlarging the thumbnail, which adds no detail.
  3. 3Part of the code is missing or coveredError correction rebuilds a damaged area, but only up to about 30% at the highest level and less at the usual ones. A code with a corner cut off, a watermark across it, or a finger over one of the three big squares will not read.
  4. 4The photo was taken at an angleA code photographed off to one side becomes a trapezium, and the modules on the far edge compress into each other. Retake it square on, with the code filling more of the frame.
  5. 5It is a screenshot of a screenshotEvery re-encode softens the edges between modules. Two or three rounds of that turns crisp squares into grey mush. Go back to the original image or the original message.
  6. 6The contrast is too low, or the colours are invertedThis reader tries both normal and inverted, so white-on-dark is handled. What it cannot fix is a pale code on a mid-grey background, where there is not enough difference between light and dark modules to tell them apart.
  7. 7There is more than one code in the imageTwo codes in one image decode to nothing at all, rather than to one of the two. We tested 24 layouts, varying the gap, the module size and whether the codes sat side by side or stacked, and every one returned no result. Crop to the code you want and try again.

Reading the Link Before You Follow It

Where the code carries a web link, the reader shows you the host on its own, separately from the rest of the address. A phone camera usually shows a truncated preview or opens the page outright, which is how a sticker over a parking meter code ends up costing somebody money. Reading the domain first costs nothing.

This page cannot tell you whether a host is trustworthy, and it does not pretend to. What it can do is put the domain in front of you before anything opens. Be careful with a domain that looks almost right, with a shortener you cannot see through, and with any code physically stuck on top of another one.

What This Tool Does Not Do

  • This reads QR codes. Barcodes, Data Matrix and Aztec codes are different symbologies and are not supported.
  • PDFs are not read directly. Export or screenshot the page as an image first.
  • There is no camera on this page. If the code is in front of you rather than in a file, the camera scanner is the tool for that, and on a phone your own camera app is faster still.
  • Nothing is stored. Close the tab and the image and whatever it contained are gone, including from us, because they never reached us.
  • One code per image. If two are visible the decoder returns nothing rather than picking one, so crop first.

If the code is not a file at all but is printed on something in front of you, the camera scanner reads it through your webcam or phone camera, in the browser and with nothing installed. Whether you need either of them depends on your device, and offline QR code scanners for every device goes through what each platform can already do without an app.

Going the other way, if you want to make a code rather than read one, the generator decode-tests every code before the download unlocks, which is the same check this page runs, applied before the file ever leaves your hands.

Questions About Reading a QR Code From an Image

Can you scan a QR code from a screenshot?

Yes. Paste the screenshot straight onto this page with Ctrl+V, or drop the file in, and the code is decoded in your browser. You get the exact text it contains, what kind of payload it is, and a measurement of how much detail the copy still has. Nothing is uploaded and there is no account.

Is my image uploaded anywhere?

No. The file is read by your browser, drawn to a canvas in this tab, and decoded there. It never reaches a server. That is enforced rather than promised: this site's content security policy restricts network connections to its own origin, so the page could not send your image anywhere even if it tried to.

Why does it say no QR code found?

The decoder reports failure without a reason, so this page will not invent one. It does tell you the pixel size of the image it looked at, and that it tried both a normal and an inverted reading. The most common causes, in order, are a cropped quiet zone, an image too small to resolve the modules, and part of the code being covered. The checklist on this page covers each one.

What does pixels per module mean?

A QR code is a grid of squares called modules, and this number is how many image pixels each one got. It is the measurement that decides whether a code survives being resized, printed or re-photographed. Around 4 and above has room to spare. Between 2 and 4 read this time but is fragile. Below 2 is running on luck.

Is the link inside this QR code safe to open?

This page shows you the host the link points at before you go anywhere, which is the check most scanners skip. It cannot tell you whether that host is trustworthy. Read the domain, and be suspicious of one that looks almost right, of a shortener you cannot see through, and of any code stuck on top of another one in a public place.

Can I check whether a QR code I made will actually scan?

Yes, and that is what the pixels per module figure is for. Upload the exported file and you get the symbol version, the module count and how much detail your copy carries. Codes made on this site are decode-tested before the download unlocks, so they arrive already checked. This is for codes from anywhere else, or for a file that has been through a designer, a print shop or a chat app since.

Can it read a barcode?

No. Barcodes, Data Matrix and Aztec are different symbologies with different decoders. This reads QR codes only.

Point a camera at one, or pull one out of a screenshot, and see the link before you open it.

All tools

Guides worth reading

All guides
  • Comparisons

    Static vs Dynamic QR Codes

    What the redirect actually buys you, measured on real encoded codes, and which payloads are worse off for it.

    16 min read

QRMakery reads every code on your own device. The image you upload and whatever it contains never reach a server.