QR code decoder
QR codes encode URLs, payment links, WiFi credentials, and contact cards as 2D barcodes. Upload a screenshot or photo — or use camera if supported — to read the payload without sending the image to a cloud OCR service.
How to decode a QR code
1. Upload PNG/JPG containing QR or allow camera access.
2. Center the code in frame with good contrast.
3. Read decoded text or URL result.
4. Verify link domain before visiting — phishing uses QR too.
QR decode examples
Restaurant menu URL
Photo of table tent QR opens menu PDF link — decode first to inspect hostname.
WiFi join payload
WIFI:T:WPA;S:HomeNetwork;P:secret;; parsed to configure Android manually.
Event ticket
Decode ticket QR to compare UUID with registration database entry.
When to decode QR locally
• When verifying QR content before clicking on sensitive devices.
• When extracting WiFi or vCard data from screenshot.
• When testing QR you generated with qrCodeGenerator.
When decoding fails
• When image is blurry or damaged — retake photo with even lighting.
• When code is inverted colors some decoders struggle — increase contrast.
• When barcode is 1D UPC not QR — use barcode-specific reader.
QR payload types
http/https URLs most common; also mailto:, tel:, sms:, BEGIN:VCARD, and crypto wallet addresses — know format before acting.
Print quality
Minimum module size 4 pixels for reliable scan — tiny QR on billboards need distance math.
Quishing
Email QR phishing ("quishing") trains users to decode before open — corporate security awareness includes QR.
Frequently asked questions
Camera permission?
Browser asks for webcam — requires HTTPS context typically.
Multiple QR in one image?
May decode first found only — crop to single code.
Security warning?
Malicious QR redirects to phishing — always preview URL hostname.
Uploaded to server?
Local decode via canvas/jsQR or similar — image stays device-side.
Max QR capacity?
Up to ~4 KB alphanumeric — longer content need URL shortener.
Generate QR?
Use qrCodeGenerator counterpart on this site.