QR Code Scanner

Scan a QR code from an image, screenshot, or your camera — entirely in your browser. Drop in a picture or paste one with Ctrl+V to read the content behind a code, reveal Wi-Fi passwords, inspect contact cards, and check where a link really points before you open it. No app, no upload, nothing saved.

All computations run locally in your browser, no data uploaded to server.
From an image or screenshot
From your camera

Camera is off.

The camera starts on your rear camera by default and stops by itself the moment a code is recognized. The stream is processed frame by frame on this page — nothing is recorded.

Scanned content appears here: upload an image or start the camera.

How to Scan a QR Code from an Image, Screenshot, or Camera

  1. From an image or screenshot: drag a picture of the code onto the upload area, click it to pick a file, or copy a screenshot anywhere and press Ctrl+V (⌘V on Mac) on the page. It works right on your Windows, macOS, or Linux laptop — no app, no second phone. Uncropped screenshots are fine: the scanner tries several zoom levels, including the corners of large screenshots, so the code does not have to fill the frame. The decoded content appears instantly on the right.
  2. From your camera: click Start camera, allow the permission prompt, and hold the code inside the view. Scanning stops automatically as soon as a code is found — the camera light going off is your confirmation.
  3. Read the result: the content type is labeled (Link, Wi-Fi, Contact card, Email, Phone, SMS, Location, or plain text) and structured parts — like the Wi-Fi password or the person behind a vCard — are broken out into fields.
  4. Act on it: open a link (only after checking the domain shown above it), compose an email, dial a number, download a contact as .vcf, or copy the raw text. Everything happens on your device.
  5. Scanned several codes? They stay in Recent scans for this visit only — click one to bring it back. Reload to wipe the list.

Usage Example

A Wi-Fi QR code — like the ones this site’s QR Code Generator produces — decodes to a payload like this:

WIFI:T:WPA;S:Home-WiFi;P:myStr0ng-Pass;;

The scanner recognizes the format and shows the network name, security, and password as separate fields with a one-click copy — the fastest way to recover a forgotten Wi-Fi password from the sticker on your router.

Use Cases

Recover the Wi-Fi password from a router sticker or an old flyer, inspect what a printed code actually links to before opening it (posters, packages, parking meters — anywhere QR scams appear), read a contact card on a business card into a .vcf file, or check a code you generated yourself. Developers use it to verify generated codes and debug deep links on a desktop where a phone camera is out of reach; support teams use it to decode screenshots customers send in. Because decoding is 100% local, it is safe for screenshots containing tokens, credentials, or anything confidential.

Best Practices for Reliable QR Scanning

  • Prefer a crisp, straight-on screenshot over a photo taken at an angle. Perspective skew and motion blur are the top two reasons a decode fails; when you scan a QR code from image files, the original screenshot almost always wins.
  • Keep the whole code and its white border (the quiet zone) inside the frame. The three corner squares are how the reader locates the code — cropping into them makes even a large code unreadable.
  • For a tiny code in a big screenshot, let the multi-scale retry do its job first; if it still fails, crop the image around the code so its modules cover more pixels. Modules smaller than about two pixels are beyond any QR code reader.
  • Check the decoded URL before opening it. The full link is always shown first — verify the domain character by character, especially on codes from posters or packages, and treat short links with suspicion.
  • Sensitive payloads stay private because decoding is 100% local: Wi-Fi passwords, tokens, and one-time codes are never uploaded, never stored, and never leave your device.
  • Need the reverse direction? Generate a QR code instead, or compress a huge screenshot before decoding it on a slow connection.

How to Scan a QR Code from a Screenshot on Your Laptop

The most common desktop scenario: the code is on your screen — in a chat window, an email, a PDF — and you have no phone at hand.

  1. Windows: press Win+Shift+S to open the snipping overlay, drag a rectangle around the QR code, then come back to this page and press Ctrl+V. The clipboard image decodes instantly — no file saving needed.
  2. macOS: press ⌘⇧4, drag around the code; the shot lands on your desktop, then press ⌘V here to paste it straight from the clipboard.
  3. Either platform: if you already have the image as a file (a downloaded screenshot, an email attachment), drag it onto the upload area instead — same result.

The decoder retries at several zoom levels automatically, so the code does not need to fill the screenshot; a small code in the corner of a full-screen capture still decodes.

Recover a Wi-Fi Password from the QR Sticker on Your Router

Many modern routers print a QR code on the back or bottom that joins guests to the network without typing the password. If the plain-text password has worn off the sticker, the code still has it. Scan a photo of the sticker (or a screenshot from the router's admin page) and this tool reads the credentials out of the WIFI: payload:

FieldMeaningExample
T:security type — WPA, WEP, or nopassWPA
S:network name (SSID)Home-WiFi
P:the password, shown in full with a copy buttonmyStr0ng-Pass
H:optional — network is hiddentrue

Note T:WEP stickers on very old routers: WEP is breakable in minutes and worth replacing, not just reading. If you are setting up the sticker yourself, generate a strong password first with the Password Generator, then print the code with the QR Code Generator's Wi-Fi mode.

Verify and Inspect a QR Code Before You Trust It

A QR code is just a container — anyone can print one that opens a phishing page ("quishing"). Checking what a code really contains before following it takes ten seconds here: paste or drop the code, read the decoded text, and look at the full URL before anything opens. This tool never auto-opens links and never shortens what you see — you get the raw payload exactly as encoded.

  • Check where it really goes: shortened links (bit.ly and friends) hide the destination — the scanner shows the short URL, and whether it deserves trust is visible only after expanding it. A URL like paypa1.com with a "1" is not PayPal.
  • Verify the payload type: the result is labeled (Link, Wi-Fi, Contact, Email, SMS, Location) so a "contact card" that is really a payment link stands out immediately.
  • Re-check a code you generated: point this scanner at your own printed codes to confirm they contain what you intended before distribution.

Decode a QR Code without a Camera

Desktops without webcams, locked-down work laptops, screenshots received in Slack or Outlook — none of them need camera access. Every input path on this page works without one: drop a file, click to browse, or paste from the clipboard. Sources that work well include chat screenshots, PDF snapshots (screenshot the page — PDFs are not images), photos of screens taken with a phone, and images saved from websites. The only hard requirement is that the code's pixels survive in the image.

Frequently Asked Questions

How do I scan a QR code from an image or screenshot?

Save or screenshot the QR code, then either drag it onto the upload area, click it to pick a file, or simply paste it with Ctrl+V (⌘V on Mac). The code is decoded instantly in your browser — you never need a second phone or any app.

Is this QR code scanner free and private?

Yes. Decoding runs entirely in your browser with JavaScript — images are never uploaded, and the camera stream is never recorded or transmitted. There is no account, no tracking of what you scan, and no server involved at all.

Does the scanner keep a history of what I scan?

Your recent scans are listed for convenience, but only in memory for the current visit: reload the page and the list is gone. Nothing is written to your browser storage and nothing is sent anywhere — safe even for Wi-Fi passwords or one-time tokens.

Why does the camera not start?

The three usual causes: the page must be served over HTTPS (or localhost) for browsers to allow camera access at all; the permission prompt must be allowed; and the camera must not be held by another app. Some desktop computers have no camera — in that case use the image scan, which works everywhere.

What content types does it recognize?

Links (URLs), Wi-Fi credentials, contact cards (vCard and meCard), email (mailto), phone numbers (tel), SMS drafts (sms and SMSTO), and map locations (geo:) — each with a matching action button, like “Open link” or “Call number”. Anything else is shown as plain text you can copy.

Can I recover a Wi-Fi password from a Wi-Fi QR code?

Yes — this is one of the most useful tricks. Wi-Fi QR codes (the kind routers, Android, and iOS can produce) contain the network name and password in plain form. Scan a photo of the sticker or code and the credentials are displayed, including a copy-password button.

Does it work with uncropped screenshots and inverted (negative) codes?

Yes to both. For large screenshots the scanner automatically retries at several zoom levels — including the right and bottom corners — so a small code in a corner of a big screenshot still decodes. Codes with light modules on a dark background (inverted colors) are handled too. There are physical limits, though: a code whose modules end up smaller than roughly two pixels, or a heavily blurred photo, may still fail — zoom in or retake the shot.

Can it decode blurry, small, or damaged QR codes?

Often, yes. The scanner runs two decoding engines: a high-speed engine accelerated by the browser’s native barcode detector where available, and the jsQR library as a fallback with a different binarization. Every image is retried at multiple scales and crops before the tool gives up, and damaged codes survive up to ~30% module loss through their built-in error correction. A sharp, straight-on screenshot with the full code and its white border visible still decodes best.

Does this QR code scanner work offline?

Decoding does. Both engines are bundled with the page, so once the page itself is loaded — from cache on a repeat visit — you can scan images and screenshots with no internet connection. The camera scan also works offline. What needs a connection is fetching the page in the first place, and of course opening any URL you find inside a code.

Why does my blurry, dark, or cropped QR code not decode?

A QR code carries backup data — it survives up to ~30% damage — but the three corner “finder” squares must all be visible, and the dark/light modules must be distinguishable. Retake the shot straight-on with the whole code and its white border inside the frame, and avoid heavy compression. A crisp screenshot decodes far more reliably than a photo taken at an angle.

Is it safe to open links found in QR codes?

Treat scanned links like links in suspicious emails: “quishing” attacks hide phishing URLs in QR codes. This tool never opens anything automatically — you always see the full decoded URL first and decide. Check the domain character by character before tapping “Open link”.

Which image formats can I upload?

PNG, JPEG, WebP, and GIF (first frame). Anything your browser can display as an image works, so phone screenshots and camera photos are fine. PDF and Word documents are not images — take a screenshot of the code first.

What is the difference between this and my phone camera?

Your phone camera app opens links in its own way and hides the raw content; this scanner always shows the exact decoded text, works from still images (which cameras cannot), runs on desktops without a camera, and never passes what you scan to a server or a shortened-redirect service.

Complete the QR Toolkit

Need to go the other way? Generate QR codes for links, Wi-Fi, and contacts in the same privacy-first way. Printing a Wi-Fi code for guests? Generate a strong Wi-Fi password first. Decoding a code from a huge screenshot? Shrink the image first — all 100% local.