QR code reader
Read a QR code from an image in the browser: Canvas pixels go to jsQR, the payload is classified as URL, Wi-Fi, vCard, phone and more, and Wi-Fi credentials are parsed out.
Runs in your browserEvery computation happens in your browser — your data never leaves this device.
Choose a QR image
The image is decoded in the browser and never uploaded; save camera shots as a file first.
PNG / JPEG / WebP — screenshots and photos of a QR code both work.
Large images are scaled down to a 1600 px longest side first (nearest neighbour, so black/white edges stay crisp).
Result
Pick an image, then press Decode.
What this tool does
- A friend sends a QR screenshot — see exactly what link is inside before you scan it, instead of trusting the preview.
- Read the SSID and password straight out of a Wi-Fi QR code without bouncing around your phone settings.
- Triage a folder of QR images: URLs, contacts, phone numbers and SMS payloads are labelled by type at a glance.
- Debug QR codes you generate: paste a screenshot back in and confirm the payload and version are what you expected.
Example
Input
A 240 × 240 PNG whose QR code contains https://example.com/unikit
Output
Content type: URL; Content: https://example.com/unikit; Payload size: 26 chars · 26 bytes · 1 line; the preview draws a red box around the code
The type is inferred from the payload prefix only (http(s):// means URL) and nothing is opened automatically — you have to click "Open link" yourself.
Frequently asked questions
Is my image uploaded?
No. The browser reads the file into a bitmap, draws it on a Canvas to get the pixels, and hands them to jsQR running locally. There are no network requests, and everything is gone when you close the tab.
Why does it fail on some QR codes?
The usual suspects: a blurry or tiny image (aim for at least 200 px per side), no quiet zone around the code, glare or a steep viewing angle, or a cropped code. The tool already tries both normal and inverted modes, and tells you to try a sharper image when both fail.
How are Wi-Fi passwords extracted?
Wi-Fi QR codes use the ZXing `WIFI:T:WPA;S:ssid;P:password;H:hidden;;` syntax. The tool splits the fields on semicolons, honours escapes such as `\;`, `\,` and `\:`, and lists the SSID, password and security type separately so you can copy them straight out.
What happens with large images?
Anything wider or taller than 1600 px is scaled down first (nearest neighbour) before decoding: jsQR scans every pixel, so shrinking speeds things up a lot, and nearest neighbour keeps black/white edges crisp instead of blurring them into grey like bilinear filtering would.
Can it use my camera?
No — it only works on image files you pick. That avoids camera permissions and any privacy question; take a photo on your phone, save it as a file and select it here.
Keywords:二维码识别扫码二维码解码qrcode readerqr decoder图片识别二维码wifi 二维码jsqr二维码内容扫一扫