QR Code Reader
Read a QR code online from a picture you drop in, a screenshot you paste, or the camera on your phone or laptop, and see what the code says as text before anything opens. Nothing is uploaded, and opening a link stays a click you make.
Drop a picture here, paste a screenshot, or turn the camera on. Nothing is uploaded.
No code has been read yet.
- nothing read yet
- nothing read yet
- nothing read yet
What a code can hold
A QR code is a short string of text and nothing more, so what happens next is entirely up to whatever reads it. A phone camera usually guesses from the first word: an address starting http opens a browser, one starting tel offers a call, a WIFI: code offers to join a network. This page makes the same classification and then stops, because the one thing a printed code cannot tell you is where it goes.
| What the code starts with | What it is | What this page does |
|---|---|---|
| http:// or https:// | A web address. | Shows the whole address and offers an Open link action you press yourself. |
| mailto: tel: sms: | An email address, a phone number or a message. | Shows it as text to copy. Nothing is dialled and nothing is sent. |
| WIFI: | Network details, including the password in the clear. | Names the network, and says so when the password is sitting in the code in the clear. |
| BEGIN:VCARD | A contact card. | Shows every line so you can read it before saving anyone. |
| javascript: data: file: | Addresses that run code or point inside the machine that opens them. | Shown as text with the reason, and never offered as a link. |
Common questions
- Is my image uploaded to a server?
- No. The picture is drawn into a canvas in this tab and the decoder reads the pixels there, so the file never leaves your machine. The tool makes no network request at all, so the picture has nowhere to go except the canvas in front of you. That matters more here than for most tools, because people scan codes off invoices, tickets, parcels and two factor authentication setup screens, and the payload of a QR code is often something you would not paste into someone else's website. The only thing kept between visits is whether you last used the image or the camera, stored in your own browser.
- What is a QR code reader, and how does it work?
- A QR code reader turns the black and white squares of a QR code back into the text they were made from. It finds the three large squares in the corners, which say where the code is and which way up it sits, works out the size of the grid from them, and reads each small square as a 1 or a 0. Those bits carry the text plus extra error correction data, which lets a reader repair a scuffed or partly covered code: between about 7 and 30 percent of it can be lost, depending on the level the code was made with. What comes out is only text, very often a web address, and what a reader does next is a choice. This one shows the text to you and stops there.
- How do I scan a QR code with this page?
- There are three ways in, and all of them end with the same readout. To read a picture, press Choose image, or drop the file on the stage. To read a screenshot, copy it and paste it anywhere on the page with Ctrl+V, or Cmd+V on a Mac. To scan live, press Use camera, allow the camera when the browser asks, and hold the code inside the frame until it reads; the camera then switches off by itself. The payload appears as text with a line saying what it looks like, Copy text puts it on your clipboard, and an Open link action appears only for a web address.
- Why does it not just open the link for me?
- Because a QR code is unreadable until it is decoded, so a printed code is the one link you cannot look at before following. Most readers open the address the moment they decode it, which is the wrong way round for a code a stranger printed on a sticker. A sticker on a parking meter or a menu can be covered by another sticker, and the code underneath can point anywhere. This page decodes the code, prints the address as text, says it looks like a web address, and waits. The Open link action appears only when the payload starts with http or https, it opens in a new tab with no referrer passed on, and the destination is printed beside it so you read where you are going first. An address carrying a username and password in front of the site gets a line naming the host it really goes to, because that is the oldest way of making a link look like it points somewhere else. This page does not check whether a site is reputable: it tells you exactly where the code points and leaves the decision with you.
- My photo will not decode. What should I try?
- The page says it found no code rather than guessing at one, and a few things usually fix it. Get the whole code in the frame with a little clear space around it, since the quiet zone is part of the symbol and a code cropped to its edges often fails. Take the photo square on rather than at an angle, hold the camera steady so the edges are sharp, and avoid a glare spot across the middle. If the code is small in a large photo, crop the picture down to the code and try again. A screenshot of a code on a screen usually reads first time, so it is worth taking one when a photo keeps failing. Codes with a logo in the middle or a scuff across them often still read, because the format carries error correction, but a code that is torn or half missing may not be recoverable at all.
- Does the camera keep running after I have finished?
- No. The camera is never opened until you press for it, either with Use camera on the stage or Camera in the source row, and it is released in four places: as soon as a code is read, when you press Clear or Stop camera, when you switch to another tab, and when you leave the page. Releasing it stops the track, which is what turns the camera light on your machine off, so the light going out is your own confirmation rather than a promise you have to take on trust. The page remembers whether you last picked Image or Camera, but that never starts a camera: it always waits for you to press the button.
- What can a QR code hold besides a web address?
- Plenty, and this page names what it found. A code can carry a plain web address, an email address (mailto:), a phone number (tel:), a ready to send message (sms:), Wi-Fi network details (WIFI:), a contact card (BEGIN:VCARD or MECARD:), or just plain text such as a table number or a serial. Only a web address is offered as a link; everything else is shown as text for you to copy. Two are worth knowing about: a Wi-Fi code carries the network password as plain text, so anyone who can photograph the code can read the password, and this page says so; and an address that runs code or points inside the machine, such as javascript:, data: or file:, is shown as text with the reason it is never offered as a link.
- Which decoder reads the code, and does it matter?
- Where your browser has its own BarcodeDetector, which Chrome and Edge have on Android, ChromeOS and macOS, that is used first because it is fast and native. Everywhere else, and whenever the native one finds nothing, jsQR reads the pixels in the tab. The readout names which of the two actually ran, so a result is never anonymous. It does not change what you get: both are asked for QR codes only, so the same picture gives the same payload in any browser, and both run entirely on your machine.
- Can it read a barcode, or several codes at once?
- This page reads QR codes, one at a time, and says so rather than half supporting other symbols: both decoders are asked for QR codes only, so a shop barcode such as EAN-13 or Code 128 will not decode here. When a picture holds more than one QR code, the first one found is the one reported, so crop the picture to the code you want if that is not the one you meant. To read shop barcodes and QR codes in one place, the barcode scanner on this site reads Code 128, EAN-13, UPC-A, Data Matrix and QR codes. To make a code rather than read one, the bulk QR code generator makes one QR code or hundreds as PNG or SVG, and the barcode generator writes Code 128, EAN-13 and UPC-A.
- Is there a limit on the size of the picture?
- This page imposes none. A very large photo is scaled down for the scan rather than refused, and it is read at a detailed size first and a smaller one afterwards, because shrinking a noisy photo sometimes lets a code read that missed at full resolution. The only real ceiling is your own browser: if it cannot hold a picture that big as pixels, the page says exactly that and asks for a smaller copy or a crop, rather than failing without a reason.
- Does it work on an iPhone, an Android phone, a laptop or a PC?
- Yes, in any current browser, with nothing to install and no account. On a phone, Use camera asks for the back camera and reads the code live, or you can choose a photo or a screenshot that is already on the phone. On an iPhone the camera works in Safari and in the other iPhone browsers once you allow it for this page. On a laptop or a desktop computer, whether it runs Windows, macOS, ChromeOS or Linux, Use camera opens the webcam, but a webcam is often too soft to read a small code, so a photo taken on your phone or a screenshot usually reads first time. Chrome, Edge, Safari and Firefox all read the same codes, because jsQR covers every browser that has no decoder of its own.
- Do I need to download a QR code reader app?
- No. This page runs in the browser you already have, so there is nothing to download or install. Most phones can also read a code with the camera they came with: on an iPhone, point the Camera app at the code, or add Code Scanner to Control Center; on Android, the camera app or Google Lens reads it on most phones. This page is for the cases those make awkward: the code is already in a screenshot or a photo, you are at a computer, or you want to read the whole payload as text before anything opens.
- Can it read a QR code on my screen, or one inside a PDF?
- Yes, through a screenshot. A camera cannot point at the screen of the machine it is built into, so take a screenshot of the code instead: on Windows, Windows+Shift+S copies a region to the clipboard, and on a Mac, Cmd+Ctrl+Shift+4 does the same. Then paste it anywhere on this page with Ctrl+V or Cmd+V. A PDF is not opened directly, because this page reads pictures only, so zoom the PDF until the code fills a good part of the window and screenshot that. On a phone, take a screenshot and pick it with Choose image.
- Can I use it to test a QR code before I print it?
- Yes, for what the code says. Drop in the PNG or JPEG you are about to print and the page shows the exact text it decodes to, so a typo in an address or a test link left in by mistake shows up before a stack of flyers does. It cannot tell you how the code will scan from across a room or at a small print size, so print one copy at the real size and scan that with a phone camera as well.
The image is decoded on this machine and nothing is uploaded. The payload is shown to you as text and the link is never followed for you, because a QR code can point anywhere. A blurry, cropped or low contrast photo may not decode at all, and the tool says so rather than guessing.