Upload a screenshot, photo, or any image file containing a QR code to decode its contents instantly. Supports PNG, JPEG, and WebP. 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.
PNG, JPEG, WebP, and any other format your browser can display. Drag and drop or use the file picker.
Ensure the QR code fills most of the image and is well-lit with high contrast. Blurry or very small codes may not decode. Try cropping the image closer to the QR code.
All processing runs in your browser using the jsQR library. Our servers are not involved at any point.
This tool is specific to QR codes. For generating Code 128, EAN-13, or UPC-A barcodes use the Barcode Generator tool.