Upload an image containing a QR code to reveal what it encodes, a URL, plain text, Wi-Fi credentials, contact card, or any other data. Runs entirely in your browser.
Drop an image here or browse
PNG, JPEG, WebP — decoded in your browser
QR codes decoded locally using jsQR. All processing runs in your browser.
For image uploads, the tool draws your image onto a hidden canvas and passes the pixel data to jsQR, a QR decoder, which runs locally in your browser. For webcam scanning, each video frame is decoded the same way in a requestAnimationFrame loop. All processing runs in your browser.
All decoding happens locally in your browser tab, including the webcam stream, which is processed entirely within the browser tab. You can audit this yourselfin your browser's DevTools Network tab.
For creating new codes after decoding one, try the QR code generator. To work with 1D barcodes instead, use the barcode generator. For decoding Base64 strings that show up in scanned URLs, see Base64.
QR codes can encode URLs, plain text, phone numbers, email addresses, Wi-Fi credentials (WIFI: format), contact cards (vCard), calendar events (iCal), and more.
Yes. Take a screenshot of the QR code, then upload it into the tool.
Some QR codes contain binary data or proprietary encodings. The raw bytes are displayed as text, which may appear garbled if the content is not plain text or a URL.
All processing runs in your browser using the jsQR library. Our servers are not involved at any point.