QR Code Decoder

Scan a QR code from an uploaded image, or point your webcam at one for a live read

Drop a QR code image here, or click to browse
PNG, JPG, or any image containing a QR code
Decoded content

About this tool

QR codes encode text — usually a URL, but sometimes contact details, Wi-Fi credentials, or plain text — as a pattern of black and white squares. This tool reads that pattern back into text using jsQR, a pure-JavaScript decoder, either from an image you upload or from a live webcam feed. Everything runs locally: the image or video frame is drawn to a hidden canvas and analyzed pixel-by-pixel in your browser, so nothing is uploaded anywhere.

How to use it:

  1. Choose "Upload image" and drop or select a photo/screenshot containing a QR code, or choose "Use webcam" and point your camera at one.
  2. The decoded text appears automatically once a code is found.
  3. If it's a URL, click "Open link" to visit it, or use "Copy" to copy the raw text.

Tip: for webcam scanning, make sure the QR code fills a good portion of the frame and is well-lit and in focus — blurry or tiny codes are the most common reason a scan fails.

Why does it say "no camera available"?

This happens if your device has no camera, if you denied camera permission when your browser asked, or if the page isn't loaded over HTTPS (or localhost) — browsers block camera access on insecure origins. Check your browser's site permissions and reload if needed.

Why couldn't it find a QR code in my image?

The most common causes are the code being too small, blurry, cropped, or heavily skewed in the photo. Try a higher-resolution image or crop it so the QR code fills more of the frame.

Does the webcam feed get recorded or sent anywhere?

No — video frames are read directly into a canvas in your browser for analysis and are never recorded, saved, or transmitted. The camera stream stops automatically as soon as a code is found or you click "Stop webcam."

Can this decode damaged or partially obscured QR codes?

QR codes include built-in error correction, so mild damage or obstruction (like a logo in the middle) usually still decodes fine. Heavily damaged, low-contrast, or very low-resolution codes may fail to scan.