🍱 Lunchbox Hands

qr-codes

How to Scan a QR Code From a Screenshot on Your Computer (No App, No Upload)

The fastest way to decode a QR code from a screenshot without a phone app — plus why "just use Google Lens" is bad advice when the code holds a WiFi password, and the technical reasons some codes refuse to scan.

Someone Slacked you a screenshot with a QR code in it — a WiFi login sheet, a conference badge, a payment code — and you’re on a laptop with no phone camera pointed at your monitor to help. The top search results tell you to open Google Lens or upload the image to a random “QR decoder” site, which means sending that image to someone else’s server before you even know what’s inside it. If the code contains a WiFi password or an internal company link, that’s a bad trade for a problem that takes ten seconds to solve locally.

The 10-second answer

Open the QR Code Scanner and do one of these:

  • Paste the screenshot directly — Ctrl+V / Cmd+V works the instant you’ve copied it, no file dialog needed.
  • Drag the image file onto the drop zone.
  • Click to pick a file the normal way (JPG, PNG, WebP, and iPhone HEIC all work).
  • Use the camera tab if you’re pointing your webcam at a physical code instead of a screenshot.

It decodes in the browser using canvas pixel data — the image is never sent anywhere, there’s no upload step to wait on, and it works offline once the page has loaded. If the code contains a URL, WiFi credentials, a contact card, or a phone number, the tool parses and labels it instead of just handing you raw text. More on that below.

The honest comparison to what you’d normally reach for

Every platform now has some built-in way to read a QR code from an existing image, and none of them are secretly terrible — but they don’t all cost the same in privacy, and “built-in” doesn’t mean “already open on your screen.”

MethodStepsRequires upload/cloud?Works offline?Best for
Lunchbox QR Code ScannerPaste or drag the imageNo — decodes locally in-browserYes (after first load)Any screenshot, any OS, when the code is sensitive
Google Lens (Chrome)Right-click image → “Search with Google Lens”Yes — image is sent to GoogleNoQuick lookups on non-sensitive codes
macOS Preview / Photos (Live Text)Open image → hover the code → clickNo — on-device Live TextYesMac users who already have the file open in Preview
Windows Snipping Tool (Visual Search)Snip → “Actions” → Visual SearchOften routes through Bing image searchNoQuick one-offs on Windows 11
iPhone/Android Photos appOpen photo → tap the QR code overlayNo — on-device (iOS 15+/recent Android)YesPhotos already on the phone that took the screenshot

The pattern: on-device options are safe by default, cloud-lookup options are convenient but leak the image. Google Lens and Bing Visual Search are fine for a flyer or a restaurant menu. They’re the wrong choice for a code off a network setup sheet, an internal doc, or anything you wouldn’t paste into a public search bar. Live Text and the Photos app QR detection are the closest phone-native equivalents to our scanner — the difference is ours works from any screenshot on any OS, including a Windows machine with no Live Text and no phone involved at all.

Why some QR codes won’t scan

This is the part the “how to scan a QR code” listicles skip, and it’s usually the actual problem when a code fails. Four causes cover almost every case.

1. The three finder squares are damaged or missing

Look at any QR code and you’ll see three larger squares in the top-left, top-right, and bottom-left corners. Scanners use these to figure out the code’s orientation and boundaries before reading anything else. Crop one off, cover it with a logo, or catch it at a glare angle in a photo, and most scanners can’t even locate the grid — this is a different failure from bad error correction, and no amount of error-correction budget fixes a missing finder pattern.

2. The quiet zone got cropped out

The blank margin around a QR code (the “quiet zone”) isn’t decorative — it’s how a scanner tells “QR code” apart from “random pixels near a QR code.” The spec calls for at least 4 modules of clear space on all four sides. Screenshots are the most common way this gets destroyed: someone crops tight to the code’s visible edge to save space in a doc, and the scanner loses its anchor. If a code won’t scan, try re-cropping with generous white space on every side before assuming the code itself is broken.

3. Blur, low resolution, or extreme downscale

QR codes are a grid of modules, and each module needs to be resolved as a distinct block of pixels. A screenshot taken at low zoom, then scaled down again for Slack, then compressed as a JPEG, can blur adjacent modules into each other. Rule of thumb: if you can’t count the individual black squares with your eyes at 100% zoom, the decoder probably can’t either. Recapture at higher resolution, or crop closer to the code and re-export before scanning.

4. Damage exceeds the error correction budget

QR codes carry Reed-Solomon error correction specifically so a torn corner, a coffee stain, or a logo stamped in the middle doesn’t kill the whole code. There are four levels, and the level is baked into the code at generation time — you can’t tell which one you’re looking at just by eye:

LevelRecoverable damageTypical use
L (Low)~7%Clean digital contexts, maximum data capacity
M (Medium)~15%Default for most generators
Q (Quartile)~25%Codes likely to get scuffed or partially obscured
H (High)~30%Codes with a logo overlay, industrial/outdoor use

A Level L code with a logo dropped in the middle is a common cause of “this used to scan and now it doesn’t” — the damage from the logo alone can exceed 7%. If you’re generating codes rather than scanning them, our QR Code Generator and WiFi QR Code Generator let you pick the error correction level up front, and Q or H is the right call anytime the code will be printed, stickered, or covered with a logo.

5. Inverted colors

QR codes assume dark modules on a light background. Some dark-mode screenshots, thermal receipt printers, or deliberately-styled codes invert that — light modules on dark. Most modern scanners, including ours, handle inverted codes automatically, but if you built a custom scanner or you’re using an older app, this is worth checking before you conclude the code is corrupt.

What a QR code can actually contain (it’s not always a URL)

The “QR code = website link” assumption is why cloud-based decoders that just dump raw text are frustrating — they show you WIFI:S:MyNetwork;T:WPA;P:hunter2;; instead of a WiFi network name and a password you can copy. Our scanner classifies the payload and shows you the actual fields:

  • URL — shown as a clickable link, with the raw address visible above it so you can read it before clicking
  • WiFi credentials (WIFI:S:<ssid>;T:<WPA/WEP>;P:<password>;;) — parsed into network name, password, and security type, each with its own copy button
  • Contact card (vCard/MECARD) — name and contact fields pulled out, not a wall of BEGIN:VCARD syntax
  • Email (mailto:) — recipient and subject line separated out
  • Phone number (tel:) and SMS (sms:) — shown as a plain number and, for SMS, the pre-filled message body
  • Location (geo:) — latitude and longitude
  • Plain text — anything that doesn’t match a known format, shown as-is

“Quishing” — QR phishing — is exactly what it sounds like: a malicious code that replaces a legitimate one (stuck over a parking meter sticker, printed on a fake delivery notice, swapped into a menu stand) and leads to a credential-harvesting page instead of the real destination. The danger isn’t the QR format — it’s that a code hides the URL until something has already tried to open it.

Our scanner never auto-navigates. Every decoded URL shows up as text first, with an explicit “Open link in new tab” action next to a reminder to check the address before you trust it. Read the domain the same way you’d read a link in an email you weren’t expecting — if it doesn’t match where you think you scanned it from, close the tab.

Try it

Paste your screenshot into the QR Code Scanner — no upload, no signup, and it works the same whether the code holds a link, a WiFi password, or a contact card. If you’re the one generating codes instead of decoding them, the QR Code Generator and WiFi QR Code Generator run through the same local-only pipeline, with error correction levels you control.