Micru Logo

QR Scanner & Decoder

Upload an image or use your camera to decode any QR code instantly. Content is detected and classified automatically. Processing is entirely local - nothing leaves your device.

Drop an image here or click to browse

PNG, JPG, GIF, WEBP, BMP - up to 20 MB

Ready to scan
Upload an image or start the camera to begin

How QR Decoding Works

QR decoding starts by converting the image to greyscale and sampling every pixel to find a binary matrix of light and dark cells. The decoder then searches for the three distinctive finder patterns - the large square markers in three corners of the code - and uses them to correct perspective distortion, determine the code's orientation, and compute the size of each module (cell).

Once the matrix is extracted, Reed-Solomon error correction reconstructs any damaged or missing data modules, and the remaining bytes are decoded according to the QR encoding mode (numeric, alphanumeric, byte, or Kanji). This tool uses the jsQR library, a pure JavaScript decoder that runs entirely in your browser without contacting any external service.

Camera vs File Upload

File Upload

Best for QR codes captured in screenshots, downloaded images, or PDFs. The full image resolution is available to the decoder, making this the most reliable method for difficult codes. Drag and drop is supported.

Live Camera

Continuously decodes frames from your device camera in real time. Uses the rear-facing camera when available (ideal for mobile). Requires browser permission for camera access; no video data is stored or transmitted.

Recognised Content Types

This decoder identifies the content type automatically from the decoded string and applies the appropriate action button. Here are the types it recognises:

URL

http:// or https://

"Open URL" button appears for direct navigation.

Email

mailto: prefix

Address, subject, and body extracted for display.

Wi-Fi

WIFI: prefix

SSID, security type, and password shown in plain text.

vCard

BEGIN:VCARD prefix

Contact fields extracted and formatted for readability.

SMS

SMSTO: or sms: prefix

Recipient number and message body displayed separately.

Plain Text

All other strings

Raw content shown as-is with byte length metadata.

Troubleshooting Failed Scans

Several factors can prevent a QR code from being decoded successfully. Understanding these failure modes helps you choose a better source image or adjust your camera conditions:

Low Contrast

If the foreground and background colours are too similar, the binarisation step fails to distinguish modules. Increase the image brightness/contrast in your image editor before re-uploading.

Motion Blur

Camera shake during capture makes module edges indistinct. Hold the device steady, use a flat surface, or switch to file upload mode where image quality is fixed.

Partial Code

All three finder patterns and the quiet zone must be fully visible. Crop the source image to ensure no corners are cut off. Even a few missing modules can defeat decoding at L error correction level.

Reflective Surfaces

Gloss laminate, holographic stickers, and screen glare create bright spots that overexpose individual modules. Photograph at an angle to eliminate specular highlights, or tilt the screen away from lights.