Scanning a QR code that is on your own screen is awkward with the phone that’s showing it. Drop or paste a screenshot, or point your webcam at a printed code, and read what’s inside, including the full link, before you decide to open it. Everything is decoded on your device.
Processing locally on your device
Overview
Decoding a QR code takes several steps. The decoder converts the image to grayscale, separates dark from light with an adaptive (hybrid) binarizer, finds the three large finder squares in the corners, corrects for perspective and samples the module grid. It then runs Reed–Solomon error correction to recover the data, which is why a code with up to 7–30% damage can still be read. This tool uses the open-source ZXing decoder running in JavaScript in your browser.
Still images get a thorough treatment. The scanner tries the image at several sizes (large photos are scaled down to about 2,000 px, tiny codes are enlarged), switches to a second binarizer if the first fails, tries an inverted copy for light-on-dark codes, and has a dedicated mode for clean computer-generated codes such as screenshots and downloads. Transparent PNGs are flattened onto white first, so codes saved without a background still decode.
In camera mode the tool asks for the rear camera on phones and laptops that have one, and lets you switch cameras when there are several. About every 150 ms it copies one video frame to a hidden canvas and runs the decoder on it. Frames stay in memory and are discarded straight away; nothing is recorded or sent. With continuous scanning on, repeats of the same code are ignored for a couple of seconds, and the camera turns off when you switch modes or leave the page.
Scanning safely matters as much as scanning at all. Malicious QR codes (“quishing”) send people to fake login, parking or payment pages. The scanner never opens anything automatically. For links it shows the full address with the domain highlighted and an http warning where relevant, and opens it only after you confirm. Wi-Fi codes are split into network name, password, security type and hidden flag, and vCard and MeCard contacts, email, SMS, phone and geo codes are turned into readable fields you can copy one by one.
| Content type | Encoded as | What the scanner shows |
|---|---|---|
| Website | https://example.com/page | Full URL, highlighted domain, confirm-to-open |
| Wi-Fi | WIFI:T:WPA;S:name;P:password;; | Network name, password, security, hidden flag |
| Contact | BEGIN:VCARD … END:VCARD or MECARD: | Name, phone, email, company, title, website |
| mailto: or MATMSG: | Recipient, subject, body | |
| SMS | SMSTO:number:message | Number and message |
| Phone | tel:+15551234567 | Phone number |
| Location | geo:lat,lng | Latitude and longitude |
| Plain text | Any text | The text itself |
Choose Image or Camera at the top of the tool.
Image: drop a photo or screenshot, browse for a file, or paste with Ctrl+V. Camera: click Start camera and allow access.
Hold the code steady inside the frame, or wait a moment while the image is analyzed.
Read the decoded result: the type (link, Wi-Fi, contact and so on), the parsed fields and the raw content.
Copy a field or the whole content, or review the highlighted domain and confirm to open a link.
Pick earlier scans from the History list, or copy them all as tab-separated text.
Use cases
Someone sends a QR code as an image, or it appears in a PDF on your laptop. Paste the screenshot and read it without a second device to point at your own screen.
Before tapping a code from a parking meter, flyer or unexpected email, scan it here and read the full URL. The highlighted domain makes lookalike addresses easier to spot.
Photograph the QR sticker on a router or a guest Wi-Fi card, then copy the network name and password straight from the parsed result, even special characters.
Point a webcam at proofs from the printer, or drop in your exported PNGs, to confirm every code decodes to the right link before a print run.
Pro tips
Answers to common questions about the qr code scanner.
No. Each frame is drawn to a canvas in memory, decoded and immediately replaced by the next one. Nothing is stored or transmitted, and the camera stops when you leave camera mode or the page.
The usual causes are blur, low resolution, strong glare, a missing white border around the code, or very low contrast. Try a sharper image, crop closer, or move the camera a little further away so it can focus.
Yes. Light-on-dark codes are retried as an inverted image, and transparent PNGs are placed on white before decoding.
Never. Links are shown as text with the domain highlighted. You click “Open link” and then confirm, and the page opens in a new tab with no access back to this one.
It returns one code per image. If a picture contains several, crop each one, or scan them one after another with the camera; each result is added to the history.
This scanner is tuned for QR codes. For EAN, UPC, Code 128, Data Matrix, PDF417 and other formats, use the Barcode Scanner.
No. ToolEnhancer processes files on your own device inside the browser. They are never sent to, stored on or seen by our servers.
Yes. The qr code scanner is free to use with no sign-up, no watermarks and no daily limits.
Strip location and camera metadata from photos.
Pick any pixel colour from an image.
Extract dominant colours as HEX, RGB and HSL.
Inspect RGB and luminance histograms.
Diff two images side by side or overlaid.
Encode images as data URIs for HTML and CSS.