🔍 QR Code Decoder – Instantly Decode Any QR Image
A QR Code Decoder extracts the hidden data embedded inside a QR (Quick Response) code image — revealing URLs, Wi-Fi passwords, contact cards, calendar events, and more. This tool performs the entire decoding process locally inside your browser using the jsQR library, so your images are never sent to any server.
How to Use This Tool
Three input modes are available, each suited to a different workflow:
- Upload Image — drag & drop or click to browse for a PNG, JPG, WEBP, BMP, or GIF file containing a QR code.
- Paste from Clipboard — copy any QR code screenshot and press
Ctrl+V(or⌘+Von Mac) anywhere on the page. - From URL — paste a direct link to a remote QR code image and the tool will fetch and decode it. Note: some servers block cross-origin requests, in which case downloading the image and uploading it directly works best.
How the Decoding Works
When you provide an image, the decoder follows this pipeline:
- The image is drawn onto an off-screen HTML5
<canvas>. - Raw pixel data is extracted via
ctx.getImageData(). - The pixel array is passed to
jsQR(data, width, height), which locates the three finder patterns and reads the encoded modules. - The raw decoded string is returned along with the QR version number and the bounding-box corner coordinates.
- The decoded string is analysed against known payload schemas to auto-detect the content type and parse structured fields.
- A green polygon is drawn on the image preview around the detected QR region.
Supported Content Types
| Content Type | Detection Pattern | Parsed Fields |
|---|---|---|
| URL | Starts with http://, https://, ftp:// | Full URL, protocol, domain |
| Wi-Fi | Starts with WIFI: | SSID, Password, Security type, Hidden flag |
| vCard | Starts with BEGIN:VCARD | Name, Phone, Email, Organization, URL |
| SMS | Starts with SMSTO: or sms: | Phone number, Message body |
Starts with mailto: | To address, Subject, Body | |
| Geo | Starts with geo: | Latitude, Longitude |
| Calendar | Starts with BEGIN:VEVENT | Raw iCal event data |
| Plain Text | No matching schema | Raw decoded string |
Tips for Better Decode Accuracy
QR Code Versions & Error Correction
QR codes come in 40 versions (sizes), from Version 1 (21×21 modules) to Version 40 (177×177 modules). Higher versions store more data. Each QR code also embeds an error correction level that allows partial damage to be recovered:
| Level | Recovery Capacity | Typical Use Case |
|---|---|---|
| L (Low) | ~7% | Clean environments, digital displays |
| M (Medium) | ~15% | General purpose (default for most generators) |
| Q (Quartile) | ~25% | Industrial, moderate wear expected |
| H (High) | ~30% | Logos overlaid on QR, highly damaged codes |
Common Use Cases
🔗
Verify Links
Preview the URL a QR code encodes before following it — useful for spotting phishing QRs.
📶
Extract Wi-Fi Credentials
Retrieve the SSID and password from a printed Wi-Fi QR sticker without a phone camera.
👤
Parse vCard Contacts
Extract name, phone, email, and organisation from business-card QR codes.
🐛
Debug QR Payloads
Developers can inspect the exact encoded payload of any QR code during testing.
Limitations
The decoder works best with standard QR Code Model 2 codes (versions 1–40). Micro QR codes, structured-append QR codes, and proprietary variants (e.g., Aztec, DataMatrix) are not currently supported. Very small QR codes embedded in large images may also require cropping to the QR region before uploading.