Upload or paste a screenshot, drag in an image, or use your camera. Decoding stays in this browser, with no app, account, or file upload.
Paste · upload · dragCamera scanLocal — no uploadCopy or open result
Local-only decoding. No uploads.
Image input
Drop, paste, or choose a PNG/JPG/WebP screenshot.
No file handy? Samples verify URL, WiFi, and contact-style result actions locally.
Tip: screenshots work well. If it fails, try a higher-resolution image or increase contrast.
What happens after a scan
The scanner identifies the result type first, then shows the safest next action instead of forcing every result into the same button.
URL or website
Open the link, copy it, or rebuild it in the URL generator if you need a cleaner code.
WiFi, email, phone, or SMS
QRFlow points you to the matching generator so you can fix the payload and make a new QR.
vCard contact
Inspect and copy the decoded vCard fields. This browser reader does not save a contact or create a VCF file; rebuild incorrect fields in the business-card generator, then test saving with the intended phone/contact app.
Plain or unknown text
Copy the decoded text or turn it into a text QR. If it fails to scan, use the troubleshooting guide.
Example results and failure branches
Source image decodes
Input: a PNG, JPG, WebP, pasted screenshot, dragged image, or live camera frame containing one clear QR. Expected output: the decoded URL, text, WiFi data, vCard, email, phone, or SMS plus matching actions.
Screenshot or crop fails
Use the original-resolution image, keep the full quiet zone, crop away unrelated codes, and avoid a tiny or blurred QR. A screen decode does not prove a printed copy will scan.
No QR found
The image may contain no supported QR, multiple competing codes, too little contrast, damage, glare, or insufficient detail. Try a clearer source; if a known QR still fails, use the scan-failure guide.