How should you check the result?
The scanner processes a local image, not a live camera feed, and returns one decoded payload per scan. Crop multiple codes to one while keeping a blank border. Decoding does not automatically navigate to the destination.
Image scanning avoids camera permission
Use this page when the QR code already exists in a screenshot or file. A live camera scanner is faster for printed codes but requires camera permission and a separate privacy decision.
How do you use it?
- Choose a local image that contains one clear QR code.
- Select Scan QR code; the page checks normal and inverted pixels without requesting camera access.
- Read and copy the exact payload before deciding whether to open a decoded URL.
Worked example
Read a URL from a QR image
Input
PNG image containing a QR code for https://kitlumi.com/Output
https://kitlumi.com/The output is the encoded payload exactly as decoded; scanning does not visit the URL.
Common errors and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| No QR code was found. | The image is blurred, too small, cropped through the quiet zone, low contrast, or heavily distorted. | Use a sharper image with the full code and clear light margin visible. |
| The result is a suspicious or unexpected link. | A QR code can encode any text and does not authenticate its creator. | Inspect the complete hostname and scheme; do not open or sign in through an untrusted destination. |
Which of these 12 QR test images decode?
Checked on 2026-10-15 with jsQR 1.4.0, using inversionAttempts: attemptBoth, the same setting as the scanner. 7 fixtures returned their exact payload and 5 returned no code in the direct-pixel test.
All 12 images were also selected through the actual scanner’s file picker and decoded in Chrome on a desktop. The browser results matched the direct-pixel results for every fixture.
The URL fixtures encode https://kitlumi.com/. The plain-text image encodes KitLumi local QR sample. The two-code image contains that URL and KitLumi sample B. These controlled PNG fixtures are examples, not a success-rate benchmark for real photos or every phone.
The tiny and margin-free fixtures happened to decode. That is not a recommendation to remove margins or use tiny images. Low contrast, heavy blur, finder-pattern cropping, multiple codes, and the blank control failed in this set. Use a separate, clear image for each code.
| Image condition | Size | Observed result | Try the image |
|---|---|---|---|
| Clear URL, 8 pixels per module | 264 × 264 px | Decoded exact payload | Download PNG |
| Small URL, 2 pixels per module | 66 × 66 px | Decoded exact payload | Download PNG |
| Tiny URL, 1 pixel per module | 33 × 33 px | Decoded exact payload | Download PNG |
| White modules on black | 264 × 264 px | Decoded exact payload | Download PNG |
| Gray modules 90 on gray background 160 | 264 × 264 px | No QR code found | Download PNG |
| Box blur, radius 1 pixel | 264 × 264 px | Decoded exact payload | Download PNG |
| Box blur, radius 6 pixels | 264 × 264 px | No QR code found | Download PNG |
| Left quarter removed, including finder detail | 198 × 264 px | No QR code found | Download PNG |
| No quiet-zone margin | 200 × 200 px | Decoded exact payload | Download PNG |
| Two separate QR codes in one image | 560 × 264 px | No QR code found | Download PNG |
| Plain-text payload | 264 × 264 px | Decoded exact payload | Download PNG |
| Blank image, no QR code | 264 × 264 px | No QR code found | Download PNG |
Important behavior of QR Scanner
Treat decoded links as untrusted until you inspect their destination.
Standards and implementation references
- jsQR official repository (opens in a new tab)Documents the QR decoder used for normal and inverted image data.
- MDN — ImageData (opens in a new tab)Documents the pixel buffer supplied to the decoder.
Frequently asked questions about QR Scanner
How do I scan a QR screenshot on the same phone?
Save the screenshot, open this page in your phone browser, choose the image, and select Scan QR code. No second device or live camera is required.
Why does a cropped or blurry QR image fail?
Cropping can remove finder patterns or the surrounding quiet zone, and blur can erase module edges. Try the original image, include the complete code and margin, and crop multiple codes into separate images.
Can the scanner read inverted QR codes or several codes at once?
It attempts normal and inverted pixels. It returns at most one result per scan, and an image containing several codes may return no result. The downloadable inverted and two-code fixtures show outcomes for specific samples.
Are my screenshot and the decoded URL uploaded or opened?
The selected image is decoded in the browser with jsQR. The payload is displayed as text rather than opened automatically. Normal page assets and page-level analytics still follow the privacy policy; tool input is not included in those analytics events.
What changed?
Published 12 reproducible image fixtures with exact decode outcomes, including low contrast, blur, cropping, inverted pixels, two codes, and a blank image. October 15, 2026: added result checks and specific capability boundaries.