QR code reader
Two input modes: upload an image file or switch to Camera to scan a physical or on-screen QR code directly. The decoded value appears as copyable text, and for URLs a link button opens it in a new tab.
Upload mode accepts JPEG, PNG, WebP, SVG, GIF, BMP, and AVIF. SVG is useful when the QR code was exported as a vector file from a generator. The decoder works best when the code occupies at least 10–15% of the image area.
Camera scanning
Switch to Camera mode and allow access when the browser asks. The live feed scans every 250ms — point the camera at a printed code, a screen, or a phone and hold steady. The result updates as soon as a code is detected. Switching back to Upload stops the camera and releases the stream.
Supported content types
QR codes can hold plain text, a URL, or structured data in several well-known formats. The reader labels what it detects:
- URL — adds an “Open link” button alongside the copy button
- Wi-Fi — the SSID, encryption type, and password in
WIFI:format - vCard — contact details in
BEGIN:VCARDformat for phone contacts - Location — latitude and longitude encoded as a
geo:URI - Email and Phone —
mailto:andtel:URIs - Text — anything else, shown as-is
Detection failures
The decoder reads pixel data from the image using jsQR. If the result is “no QR code found,” these are the most common causes:
- Too small — the code takes up only a sliver of a larger photo
- Blurry or low-contrast — out-of-focus or printed on a textured surface
- Cropped — one or more corners of the code are outside the frame
- Missing quiet zone — the white border around the code is too narrow or absent
Cropping the image tightly around the code and its surrounding margin resolves most of these cases.