Drop a QR image or PDF, or click to browse
PNG · JPG · JPEG · WEBP · GIF · BMP · PDF · multiple codes · decoded locally, never uploaded
Loading…
Drop a QR image or PDF, or click to browse
PNG · JPG · JPEG · WEBP · GIF · BMP · PDF · multiple codes · decoded locally, never uploaded
Decode any QR code or barcode into plain text — from an image, a pasted screenshot, your camera or a PDF. The tool auto-detects what the code contains (URL, WiFi, contact, email and more), parses it into copyable fields, checks links for phishing, and lets you export the result. Everything runs locally in your browser; uploaded images are never stored.
Upload or drag in any QR image and read the text behind it instantly. PNG, JPG, WebP, GIF and BMP files are all decoded locally in your browser with no upload.
Point your phone or webcam at a printed QR code and the scanner reads it in real time. The camera feed stays on your device and is never recorded or uploaded.
Copy a QR from anywhere and press Ctrl+V to decode it immediately — no need to save a file first. Perfect for codes you spot on a website or in a chat.
Beyond QR, the scanner reads Code 128, EAN, UPC, Code 39, ITF, Codabar, PDF417, Data Matrix and Aztec codes through the native BarcodeDetector API.
The decoded text is classified automatically — URL, WiFi, contact, email, phone, SMS, geo, calendar event or plain text — and parsed into clean, copyable fields.
When a QR holds a link, a security panel reveals the real destination, flags redirects, shorteners and look-alike domains, and helps you avoid quishing scams.
Drop in many QR or barcode images at once and decode them all in a single pass, with every result listed together and ready to export in bulk.
Pull the raw text out of any code and see live character, word and line counts, so you can reuse the content as notes, data or input for other tools.
Save your decoded results as plain TXT, a CSV spreadsheet, structured JSON for developers, or a tidy PDF report you can print or share.
Past scans and starred results are stored locally in IndexedDB, so your history survives a refresh, works offline and stays entirely on your own device.
Every scan happens in your browser. Images, camera frames and decoded text are never uploaded, logged or shared — there is simply no server involved.
Inspect the technical detail behind a code: its version and module size, the data encoding mode and the error-correction level used to build it.
Upload a QR or barcode image, drag and drop a file onto the page, paste a screenshot straight from your clipboard, or switch on your device camera to scan a printed code live.
The decoder reads the code right inside your browser using jsQR and the native BarcodeDetector API. Nothing is sent to a server, so the result appears in a fraction of a second.
The hidden text behind the QR — a link, message, phone number or block of data — is shown straight away in a clean, selectable result panel.
The tool recognises the type of content automatically. URLs, WiFi credentials, contact vCards, emails, phone numbers, SMS, geo-locations and calendar events are split into tidy, labelled fields.
Copy the decoded text with one click, or export your results as TXT, CSV, JSON or a PDF report. Batch scans can be exported all at once.
If the QR contains a URL, open the security panel to inspect the full destination, spot redirects and shorteners, and judge whether the link is safe before you ever tap it.
A QR code to text tool is a scanner and decoder that takes the square black-and-white pattern of a QR code — or the stripes of a traditional barcode — and reveals the hidden information stored inside it as plain, readable text. Every QR code is really just an encoded string: a website link, a WiFi password, a contact card, an email address, a payment reference or a short message. Normally that string is locked away behind a pattern that only a scanner can read. This tool unlocks it, so instead of pointing a separate phone at the code and hoping an app opens it, you simply give the tool an image, a screenshot or a camera view and it shows you exactly what the code says.
The reason a dedicated decoder is so useful is that QR codes increasingly show up where a phone camera cannot easily reach them. You might receive a QR in an email, a PDF invoice, a chat message or a screenshot; you might find one embedded in a web page on the very device you are holding; or you might want to read a printed code without trusting it enough to let your phone act on it automatically. In all of these situations you do not want the code to open something — you want to see the text first. A QR code to text tool puts that text in front of you safely, where you can read it, copy it, search it or verify it before deciding what to do next.
This particular tool is built to be genuinely versatile. It decodes QR codes from uploaded image files, from screenshots you paste straight off your clipboard, and from a live camera feed for printed codes. It also handles common one-dimensional and two-dimensional barcodes such as Code 128, EAN, UPC, PDF417, Data Matrix and Aztec, so it works as a general-purpose code reader rather than QR only. Once a code is decoded, the tool does more than dump the raw string at you: it recognises the type of content automatically and parses it. A WiFi code becomes a network name, security type and password; a contact code becomes name, phone and email fields; a link is shown in full with a security panel attached. You also get a text-extraction view with character, word and line counts, batch scanning for many images at once, an offline history of past scans, and one-click export to TXT, CSV, JSON or PDF.
Most importantly, this is a free, private, browser-based tool. There is no account to create, nothing to install and no cost of any kind. The decoding happens entirely on your own device using the well-known jsQR library together with the browser native BarcodeDetector API where it is available. That means the images you upload, the screenshots you paste and the frames from your camera are never sent to a server, never stored online and never logged — there is simply no server doing the work. Your scan history and favourites are saved locally in IndexedDB, so they persist between visits, survive a refresh and remain available even when you are offline. It is a professional-grade scanning workflow that happens to be instant, ad-light and completely yours.
Decoding a QR code is the reverse of generating one. The tool first turns whatever you give it — an uploaded file, a pasted screenshot or a camera frame — into raw pixels on a canvas. It then looks for the three large square “finder patterns” in the corners of a QR code, which tell it where the code is, how big it is and how it is rotated. From there it reads the grid of black and white modules, corrects for any skew or perspective, and converts the pattern into a stream of bits.
Those bits are not just the message; they also carry structure. A QR code records its version (which fixes the grid size), the encoding mode used for the data (numeric, alphanumeric, byte or kanji) and a set of error-correction codewords. The decoder uses Reed–Solomon error correction to repair any damaged or obscured modules, which is why a code can still be read with a logo in the middle or a smudge across part of it. Once the data passes its checksum, the raw text emerges — and the tool then classifies that text to work out whether it is a URL, WiFi credential, contact card or something else.
Under the hood this tool uses two complementary engines. The jsQR library is a pure-JavaScript QR decoder that runs everywhere and handles QR codes reliably from images and video frames. Alongside it, the native BarcodeDetector API — built into many modern browsers — adds fast, hardware-accelerated reading of additional formats such as Code 128, EAN, UPC, PDF417, Data Matrix and Aztec. Both run locally in your browser, which is exactly why decoding is instant and private: there is no round trip to a server and no image ever leaves your device.
A traditional barcode is one-dimensional: it stores data in the varying widths of vertical lines, read across in a single direction. Formats like UPC and EAN power retail checkouts, while Code 128 and Code 39 are common in logistics and warehousing. Because the information sits in one dimension, a barcode can only hold a relatively small amount of data — typically a number or short code that points to a record in a database rather than the data itself.
A QR code is two-dimensional: it stores data in a grid of squares read both horizontally and vertically, which lets it pack in far more information — hundreds or even thousands of characters. That is why a QR code can hold a full URL, a WiFi configuration or an entire contact card directly, with no database needed. QR codes also include finder patterns and error correction, so they can be read at an angle, partly damaged, or with a logo placed over them, which makes them robust in the real world.
There are also “stacked” and matrix formats that sit between the two, such as PDF417 (used on driving licences and boarding passes), Data Matrix (common on small electronic parts and pharmaceutical packaging) and Aztec (popular for transit tickets). This tool reads all of these alongside ordinary QR codes and linear barcodes, so whether you are decoding a checkout barcode, a boarding pass or a poster QR, you get the underlying text in the same simple way.
Scanning from an image is the feature people reach for most, because so many QR codes now arrive as files rather than physical objects. You might have a QR in a screenshot a friend sent, in a PDF ticket, in a saved photo or embedded in a web page on the device you are already using. In all of these cases there is no easy way to point a camera at the code — you need to decode the image itself. This tool lets you upload a file, drag and drop it onto the page, or paste a screenshot straight from your clipboard with Ctrl+V, and it reads the code in place.
The supported formats cover everything you are likely to meet: PNG, JPG, WebP, GIF and BMP. The image is drawn onto a canvas in your browser and analysed pixel by pixel, so larger, clearer images decode more reliably than tiny or blurry ones. If a code will not read, the usual culprits are low resolution, heavy compression artefacts, glare or a code that occupies only a small part of the frame — cropping closer to the code or using a sharper source image almost always fixes it.
For files that contain more than one code, batch and multi-code handling come into play: you can drop in several images at once and decode them together, then export every result in one go. And because the whole process is local, none of those images are uploaded or stored anywhere — they are read on your device and discarded from memory when you are done, leaving only the decoded text you chose to keep.
QR codes are convenient precisely because they hide their destination, and attackers exploit that. A scam known as “quishing” (QR phishing) uses codes that look legitimate — stuck over a real parking-meter sticker, printed on a fake parcel notice, or pasted into a convincing email — but lead to malicious sites designed to steal logins or payment details. Because the link is invisible until you scan it, the single most important habit is to read the destination before you act on it.
That is where decoding a QR to text first, rather than letting a phone open it automatically, becomes a real safety measure. This tool shows you the full URL behind a code and offers a security panel that highlights warning signs: link shorteners and redirect chains that hide the true target, look-alike or misspelled domains imitating a trusted brand, the use of an IP address instead of a name, and other common phishing tells. Seeing the actual address gives you the chance to decide calmly instead of being whisked off to a page you never chose to visit.
A few practical rules go a long way. Be wary of QR codes in unsolicited messages or stuck over existing signage in public places. Never enter passwords or payment information on a site you reached only by scanning an unexpected code. Check that a link uses the domain you expect, not a near-match. And when in doubt, type the address yourself or navigate to the organisation directly rather than trusting the code. Decoding first turns a blind tap into an informed choice.
There are two broad kinds of QR code: static and dynamic. A static QR encodes its data directly — the text inside the code is the final content, fixed forever once the code is printed. A dynamic QR instead encodes a short redirect link that points to a server; when scanned, that link forwards the user on to whatever destination the owner has currently set. The pattern on the page stays the same, but where it leads can be changed at any time.
Dynamic codes have genuine advantages for businesses. The owner can update the destination without reprinting anything, fix a broken link, or point a single poster at different campaigns over time. Because the redirect passes through a server, dynamic codes can also count scans and gather basic analytics such as time, rough location and device type. This is why marketing QR codes are very often dynamic rather than static.
For someone decoding a code, the practical upshot is that a dynamic QR will reveal a short redirect URL rather than the final landing page. That is exactly why the security panel matters: a shortened or redirecting link hides its true destination by design, so it is worth following the trail and confirming where it actually goes before trusting it. Reading the decoded link here lets you see that it is a redirect in the first place, instead of being silently forwarded.
QR codes have become a standard bridge between the physical and digital worlds for businesses of every size. Restaurants put them on tables for contactless menus, retailers print them on packaging and receipts, event organisers use them for tickets and check-in, and marketers add them to posters, flyers and product displays to send people straight to a landing page, app download or sign-up form. A single small square removes the friction of typing a long address by hand.
For teams that work with codes regularly, a fast decoder is a practical everyday tool. It lets staff verify that a printed code resolves to the correct link before a batch goes to print, audit competitor or supplier codes, pull product identifiers out of barcodes for inventory, and read codes captured in screenshots or documents without juggling a second device. Batch scanning makes it easy to check or catalogue many codes at once, and CSV or JSON export drops the results straight into a spreadsheet or system.
Decoding also supports quality control and trust. By reading exactly what a code contains — and inspecting the URL through the security panel — a business can confirm its own codes have not been tampered with or overlaid by a malicious sticker, and can reassure customers about what a code will do. Pairing this scanner with a QR generator gives you a complete round-trip workflow: create a code, then decode it to verify it is correct before it ships.
On a phone or tablet, this tool can use the device camera to scan printed QR codes and barcodes live, just like a dedicated scanning app — but right inside your browser with nothing to install. When you start the scanner, the browser asks for permission to use the camera, shows you a live preview, and decodes any code that comes into view automatically. On phones with more than one camera, the rear camera is usually the best choice for scanning physical codes.
A few requirements are worth knowing. Browser camera access only works on a secure (HTTPS) page, and you must grant permission when prompted; if you previously denied it, you will need to re-enable camera access for the site in your browser settings. Good, even lighting and holding the code steady within the frame make decoding much faster, and moving slightly closer or further away helps the camera focus on smaller codes.
Camera scanning works across modern mobile browsers on both iPhone and Android, as well as on laptops with a webcam. Crucially, the camera feed is processed on your device only — frames are analysed in the browser and never recorded or uploaded. If you would rather not use the camera at all, you can always fall back to uploading a photo of the code or pasting a screenshot, which works identically and is sometimes easier for codes shown on a screen.
One of the cleverest features of QR codes is built-in error correction, which lets a code still be read even when part of it is dirty, damaged or covered. This is achieved with Reed–Solomon codes that add redundant data, so a decoder can reconstruct the message even if some modules are unreadable. QR codes come in four error-correction levels: L (Low, about 7% of the code can be recovered), M (Medium, about 15%), Q (Quartile, about 25%) and H (High, about 30%).
The trade-off is between resilience and capacity. A higher correction level adds more redundant modules, which makes the code more robust but also denser and able to hold less data for a given size. Level L squeezes in the most information and suits clean digital codes that will always be scanned in good conditions. Level H is the most forgiving and is the usual choice when a logo is placed in the centre of a code or when the code will be printed small, used outdoors or exposed to wear.
When this tool inspects a code, the QR info panel can report the error-correction level along with the version and encoding mode, giving you a sense of how the code was built and how much damage it could survive. You do not need to understand these details to read a code, but they are useful for anyone designing codes or diagnosing why a particular print does or does not scan reliably.
Many online QR readers work by uploading your image to a server, decoding it there and sending the result back. That design quietly hands your data to someone else: the QR you scan might contain a WiFi password, a private contact card, a payment reference or a personal link, and once the image leaves your device you have to trust that the server does not store, log or share it. For anything sensitive, that is a real privacy cost hidden behind a simple convenience.
This tool takes the opposite approach. All decoding happens locally in your browser using jsQR and the native BarcodeDetector API, so the image you upload, the screenshot you paste and the frames from your camera are processed entirely on your own device. Nothing is transmitted to a server, nothing is stored online, and there is no account, login or tracking attached to your scans. The decoded text exists only on your machine unless you choose to copy or export it.
Local processing also makes the tool fast and resilient. Because there is no upload step, results appear almost instantly, and once the page has loaded the scanner keeps working without an internet connection. Your scan history and favourites are saved privately in your browser using IndexedDB, so they stay on your device, survive a refresh and are never synced anywhere. You get the full convenience of an online tool with the privacy of an offline one.
| Phone camera app | Browser QR-to-text | |
|---|---|---|
| Reads from a screenshot | Cannot scan an image on the same screen | Upload or paste any saved screenshot to decode |
| Live camera scanning | Built for pointing at physical codes | Camera plus image, paste and batch input |
| Shows the link first | Often opens the link automatically | Reveals the full text before you act on it |
| Security check | Little or no link inspection | Security panel flags redirects and phishing |
| Batch decoding | One code at a time | Decode many images together and export |
| Export results | No structured export | Copy or save as TXT, CSV, JSON or PDF |
| Server-side API | Local in-browser | |
|---|---|---|
| Where decoding happens | On a remote server | Entirely in your browser |
| Image handling | Uploaded and possibly stored or logged | Never leaves your device |
| Account | May require sign-up or an API key | No account, no login, no tracking |
| Speed | Adds upload and round-trip delay | Instant — no network round trip |
| Offline use | Needs a connection for every scan | Works offline once the page has loaded |
| History | Stored in the cloud | Saved privately in local IndexedDB |
Got a QR in a screenshot, email or PDF but no second phone to scan it? Upload or paste the image and read the hidden text instantly on the same device.
Scan the WiFi QR on a café wall, router or guest card and the network name, security type and password are parsed into copyable fields you can type in.
Turn a vCard or MeCard QR on a business card into a tidy contact — name, phone, email and address split out and ready to copy or save.
Before tapping a QR on a poster, parking meter or letter, decode it here first to reveal the true URL and check it for phishing and redirects.
Read EAN, UPC, Code 128 and other product barcodes to pull out item numbers for inventory, price checks, stocktaking or quick look-ups.
Researchers, marketers and operations teams can drop in a folder of QR images and decode them all at once, then export every value as CSV or JSON.