QR code reader
Scan and decode QR codes from images, camera, or bulk upload.
Paste an image directly
Press ⌘ + V / Ctrl + V to paste an image from your clipboard.
Reading a QR code that is already on your screen is the awkward case: you cannot point a phone at your own monitor conveniently, and most scanner sites want you to upload the image. This page decodes locally with jsQR. Drop or paste a screenshot, use the camera, or queue a folder of images for bulk scanning. Once decoded, the payload is classified rather than dumped as a string: a Wi-Fi code is split into network name, password and encryption type with a copy button on the password; a vCard becomes readable contact fields; URLs, email, SMS and phone payloads each get the right presentation. The last thirty results stay in a searchable session history.
Key facts about QR code reader
| Decoder | jsQR, running on pixel data pulled from a canvas in this tab |
|---|---|
| Symbology | QR codes only. Barcodes such as EAN-13, Code 128, Data Matrix, Aztec and PDF417 are not decoded |
| Three input modes | Upload or drop an image, live camera scanning, or bulk mode for a batch of image files |
| Clipboard paste | Paste an image anywhere on the page and it is decoded — the fastest path from a screenshot to a result |
| HEIC | iPhone HEIC screenshots and photos are converted before decoding, so they work without a separate conversion step |
| Camera | Requests the rear-facing camera at 1280 by 720 where available and scans every animation frame until a code is found |
| Content types recognised | URL, Wi-Fi, vCard contact, email, telephone, SMS and plain text |
| Wi-Fi payload | The WIFI: string is parsed into SSID, password and encryption type, with a dedicated copy button for the password |
| Contact payload | A vCard is broken out into its name, telephone and email fields instead of being shown as raw vCard text |
| History | The last 30 decoded values are kept in session storage, searchable by text or type, and individually removable |
| History lifetime | Session storage — it is gone when the tab closes, and it is never shared between tabs or devices |
| Location | The decoder reports the corner positions of the code it found, so you can see which code in a busy image was read |
What happens to your file
Images are decoded in this tab: the file or camera frame is drawn to a canvas, the pixel data is handed to jsQR, and the result is displayed. No image is uploaded, no camera frame is transmitted, and no decoded value is sent anywhere. The camera stream is requested through the standard browser permission prompt, used only for scanning, and stopped as soon as a code is found or you leave camera mode. Decoded results are kept in session storage in your own browser so they survive a reload but vanish when the tab closes. This matters because QR codes routinely carry Wi-Fi passwords and personal contact details.
About this tool
- 1
Choose how to give it the code
Upload or drop an image file, switch to camera mode, or use bulk mode for a folder of images. You can also just paste a screenshot from the clipboard onto the page.
- 2
For a screenshot, paste it
Copy the region containing the code with your system screenshot tool and paste. The image is decoded immediately, with no file to save first.
- 3
For a printed code, use the camera
Grant camera access and hold the code in frame. Scanning runs continuously and stops the moment a code is recognised, so the stream ends as soon as it is no longer needed.
- 4
Read the classified result
A Wi-Fi code shows the network, password and encryption separately; a contact code shows name, phone and email; a URL is shown as a link you can inspect before visiting.
- 5
Copy what you need
Copy the decoded text, or use the dedicated copy button on a Wi-Fi password. Nothing is opened automatically — you decide whether to follow a link.
- 6
Check the history
The last thirty results stay for the session and are searchable, which is useful after a bulk scan of many codes.
| Accepted images | Any format your browser can decode — PNG, JPEG, WebP, GIF — plus HEIC via automatic conversion |
|---|---|
| Camera | Rear-facing preferred, 1280 by 720 requested; needs a secure context and camera permission |
| Bulk mode | Multiple image files at once, with a per-file success or failure result and a decoded count |
| History size | 30 entries, session storage |
| Outputs | Copy the decoded text, copy a Wi-Fi password, or follow an email or telephone link |
| Not supported | PDF417, Data Matrix, Aztec, EAN, UPC and Code 128 barcodes |
| Network | None. Decoding, classification and history are all local |
| Browser support | Chrome, Edge, Firefox and Safari; camera mode requires HTTPS |
| Cost / account | Free, unlimited scans, no signup |
- Always read a decoded URL before following it — the point of a QR reader on a computer is that you can see the destination first, which a phone camera makes far too easy to skip.
- For a code on paper, a flat photo in even light beats a close-up: jsQR needs the whole finder pattern in frame and reasonably square.
- A code printed on a curved surface, such as a bottle, often fails — photograph it from straight on and as flat as you can.
- Bulk mode reports how many of the images decoded, so a batch of product labels can be checked for print faults quickly.
- Wi-Fi codes are the most common thing people scan on a laptop, and the password copy button is the reason: you get the credential without retyping it.
- If a photo of a screen fails, take a screenshot instead — moiré patterns from photographing a display defeat the decoder more often than blur does.
- The history is session-only by design, so nothing you scan is left behind for the next person to use the machine.
- Decode from image, camera, clipboard or bulk queue
- Automatic HEIC conversion
- Wi-Fi credentials parsed with password copy
- vCard contact fields broken out
- URL, email, SMS and phone recognition
- Searchable session history of 30 results
- Code position reported
- No upload, no signup
- Reading a QR code that is already on your screen without picking up your phone.
- Getting a Wi-Fi password out of a guest network code without retyping it by hand.
- Checking where a QR code in an email or a poster actually points before visiting it.
- Extracting contact details from a vCard QR code on a business card.
- Batch-checking a folder of generated codes to confirm they all decode correctly.
- Decoding a code on a machine with no camera at all, using a screenshot.
Related tools
View allPart of File viewers that open the file in your browser
Works well with this4
More file viewers10
More in Utilities12
Related categories2
Updated