WebToolsPlanet
Generator Tools

QR Code Scanner

Scan a QR code from a photo, screenshot, or saved image. Upload the file and the decoded content — a website link, WiFi network, contact card, payment request, or plain text — appears instantly. Everything runs in your browser; the image is never uploaded to a server.

No signupWorks on blurry codesBrowser-basedNo upload to server

Last updated: July 3, 2026

Only scan QR codes from sources you trust. This tool decodes the payload but does not check whether a linked website is safe — review any URL before opening it.

Client-Side Processing
Input Data Stays on Device
Instant Local Execution
Browser-basedNo accountClient-side decode only

Find this tool useful? Support the project to keep it free!

Buy me a coffee

What is QR Code Scanner?

A QR code scanner reads the pattern in a QR code image and converts it back into the original data — a URL, WiFi credentials, a contact card, a payment request, or plain text. Most people scan QR codes with a phone camera, but that only works for codes in front of you right now. This tool solves a different, common problem: you already have a QR code as an image — a screenshot, a downloaded file, or a photo — and need to know what it contains without printing it out or pointing a camera at a screen.

Decoding happens with the jsQR library, running entirely in your browser using the Canvas API. If the QR code does not decode from the original image — common with blurry photos, low-contrast scans, or small screenshots — the tool automatically retries with a short sequence of image enhancements: contrast stretching, 2x upscaling, and sharpening. This is not true deblurring (recovering detail that genuinely is not in the image is not something a lightweight browser tool can do), but it recovers a meaningful number of QR codes that fail to decode from the raw file.

How to Use QR Code Scanner

1

Drop a QR code image into the upload area, or click to browse for a file

2

Accepted formats: PNG, JPG, WebP, or GIF — a screenshot works fine

3

The tool decodes the QR code automatically — no button to press

4

If the raw image does not decode, the tool retries with contrast and sharpness enhancement automatically

5

Review the decoded content, then copy the raw text or open the link directly

Common Use Cases

  • Check what a QR code links to before scanning it with your phone, especially on flyers, packaging, or unsolicited mail
  • Decode a QR code from a screenshot when the original code is no longer on screen
  • Read a WiFi QR code from a photo when you cannot use your phone camera directly on the router or sign
  • Recover a contact card, coupon, or event QR code from a saved image or downloaded file
  • Verify a QR code you generated actually encodes the correct data before printing it in bulk
  • Read a blurry or low-contrast QR code photo that a phone camera keeps failing to scan

Example Input and Output

Scanning a WiFi QR code from an uploaded photo:

Uploaded image
File: cafe-wifi-qr-photo.jpg
Condition: slightly blurry phone photo, low contrast
Decoded result
Detected: WiFi network
Network name (SSID): CafeGuest
Security: WPA
Password: welcome2024
Decoded using: Contrast-enhanced pass (2 attempts)

How This Tool Works

The uploaded image is drawn onto an off-screen Canvas element and read as pixel data. That pixel data is passed to the jsQR decoding library, which locates and decodes the QR pattern. If the first attempt fails, the tool reprocesses the same pixel data — grayscale contrast stretching, 2x canvas upscaling, and a 3x3 unsharp-mask sharpen — and retries decoding after each step, stopping as soon as one attempt succeeds. The decoded text is then pattern-matched against known QR payload formats (WIFI:, vCard, mailto:, tel:, sms:, geo:, upi://, VEVENT) to produce a readable summary.

Technical Stack

jsQRHTML Canvas APIFileReader APIClient-side onlyNo external APIs

Privacy First

Your image is processed entirely in your browser using the Canvas API and the jsQR decoding library. It is never uploaded to, transmitted to, or stored on our servers.

Why some codes still fail to decode

A QR code needs enough intact, high-contrast modules to decode — no amount of software enhancement can recover data that genuinely is not present in the image. If a scan fails after all enhancement passes, try a sharper photo, better lighting, less glare, or cropping the image closer to just the QR code.

Before opening a decoded link

This tool shows you exactly what a QR code contains before you visit it. Always review a decoded URL for anything suspicious — QR codes are commonly used in phishing attempts, especially on posters, parking meters, and unsolicited mail.

Frequently Asked Questions

Is this QR code scanner free?
Yes. It is completely free, requires no account, and has no scan limit. Decoding happens in your browser using the Canvas API and the jsQR library — no image is uploaded to a server.
Can this scan a blurry or low-quality QR code photo?
Often, yes. If the original image does not decode, the tool automatically retries with contrast enhancement, 2x upscaling, and sharpening. This recovers many blurry or low-contrast codes, but it is not true deblurring — a QR code that is too damaged, too small, or missing too many modules may still fail to decode. Try cropping closer to the code or retaking the photo with better lighting.
Can I scan a QR code from a screenshot?
Yes. Upload the screenshot directly — this is one of the most common uses for this tool, since a phone camera cannot scan a QR code displayed on the same screen.
What types of QR codes can this decode?
Any standard QR code payload: website URLs, WiFi credentials, contact cards (vCard), UPI payment requests, email drafts, phone numbers, SMS messages, calendar events, map coordinates, and plain text. The tool automatically detects the type and displays it in a readable format alongside the raw decoded text.
Is my uploaded image sent to a server?
No. The image is decoded entirely in your browser using the Canvas API. It is never uploaded, transmitted, or stored anywhere.
Why does the tool say it needed multiple attempts to decode?
That message means the QR code did not decode from the original image on the first try. The tool automatically retried with image enhancement (contrast stretching, upscaling, or sharpening) until one pass succeeded. This is normal for photos taken at an angle, in low light, or with a low-resolution camera.
Can I scan a QR code with my webcam?
Not yet — this tool currently decodes uploaded images only. For live camera scanning, use your phone's built-in camera app (supported natively on iOS 11+ and Android 9+) or a dedicated scanner app.
Is it safe to scan a QR code? Can a QR code give you a virus?
A QR code itself can't contain a virus — it only encodes a short piece of text, usually a URL. The real risk is what that URL points to: a phishing site or a prompt to download something malicious. This tool shows you the fully decoded destination before you visit it, so you can check the URL looks legitimate before tapping through, rather than scanning blind with a camera app that opens the link immediately.