QR Code Generator and Reader
Generate QR codes for URLs, text, email, phone, WiFi credentials, and vCard contacts — or upload any QR code image to decode its contents instantly. Everything runs in your browser with no data sent to any server.
Upload a PNG, JPEG, WebP, or GIF file containing a QR code and the decoded content will appear below. The file is processed entirely in your browser — nothing is uploaded.
Drag and drop a QR code image here
Decoded content
Scan with camera
Use your device camera to scan a physical QR code in real time. Your browser will ask for camera permission when you click the button below. The video feed never leaves your device.
Last updated: [LAST_UPDATED_DATE]
How to Use the QR Code Generator and Reader
- Choose your content type. Click one of the six type buttons at the top of the Generator tab — URL, Text, Email, Phone, WiFi, or vCard. The form fields will change to match the selected type. For example, choosing WiFi reveals fields for your network SSID, password, and security protocol; choosing vCard reveals fields for a full contact record including name, organization, phone, email, and website.
- Enter your data. Fill in the fields that appear. For URL mode, paste a full address including the protocol (https://). For Phone mode, include the country code prefixed with a plus sign — for example, +1 for the United States — so the QR code works for people scanning from outside your home region.
- Adjust the appearance options. Set the output size in pixels (128–1024 px), choose foreground and background colors using the color pickers, and select an error correction level. Medium (15%) is the right choice for most purposes; High (30%) lets the QR code survive up to 30% physical damage but increases visual density and may slow scanning on budget phone cameras.
- Click Generate QR Code. The canvas renders your QR code instantly. Below the image, the Details panel shows the content type, data length in characters, pixel dimensions, error correction level, and the QR version number (which indicates module grid complexity — Version 1 is a 21x21 grid; each version up adds 4 modules per side).
- Download or copy the image. Click "Download PNG" to save the QR code as a high-resolution PNG file ready for print or digital use, or click "Copy Image" to place the PNG directly on your clipboard for pasting into design software or messaging apps.
- To decode a QR code, switch to the Reader tab. Drag and drop a PNG, JPEG, WebP, or GIF file containing a QR code onto the upload zone, or click "Browse files" to select one from your file system. The decoded text appears within a second of the file loading.
- Use the camera scan feature for physical codes. Click "Start camera scan" in the Reader tab and grant camera permission when your browser prompts you. Point your camera at any printed or on-screen QR code — the tool polls the video stream every 400 milliseconds, and the decoded result appears automatically when a valid code is detected. Click "Stop camera" when finished to release the camera immediately.
Why Use Our QR Code Generator and Reader?
The free QR code generator on Thefreeaitools handles the full cycle that most single-purpose tools ignore: creating a code and then verifying it actually works by decoding it again, right on the same page. This matters in practice because a URL QR code with a typo, a WiFi code with the wrong security type, or a vCard code with a malformed phone number will silently produce a scannable but useless QR image. By combining generation and reading in one place, you can generate a code, immediately scan your own PNG back through the reader, confirm the decoded text matches what you entered, and only then send the file to print or distribute it.
Six content types are supported — URL, plain text, email (with subject and body), phone number, WiFi network credentials, and vCard contact record — and each one formats the underlying data string according to the standard that smartphone camera apps actually look for. A WiFi QR code, for example, must follow the format WIFI:T:WPA;S:NetworkName;P:Password;; or most Android and iOS devices will treat it as unrecognized data rather than triggering the "Join this network?" prompt. This tool builds that string automatically from your inputs so you never have to remember the format yourself.
Unlike browser extensions or desktop apps, this QR code tool requires no installation and no account. You can use it on any device with a modern browser — desktop, tablet, or phone — and it works identically on Windows, macOS, Linux, Android, and iOS. There is no file size limit on the images you upload for decoding, no watermark on downloaded PNG files, and no restriction on how many QR codes you generate per day. The tool is free for personal, professional, and commercial use with no attribution requirement.
The error correction level control — a feature typically locked behind paid tiers on commercial QR generators — lets you fine-tune the balance between code density and damage tolerance. Low correction (7%) produces the smallest, least dense QR module grid, which scans fastest on high-quality displays and clean prints. High correction (30%) is the right choice for QR codes that will be printed on materials likely to be partially obscured, worn, or damaged — product labels, outdoor signage, clothing tags, or codes overlaid with a logo. The current tool generates standard QR codes; if you need a logo embedded in the center of the QR image, you can overlay one in any image editor after downloading the PNG, as long as the logo covers no more than roughly 25–30% of the code area when using High correction mode.
Worked Example — WiFi QR Code for a Guest Network
Input vs. Output
Suppose you want to give visitors to your office a QR code they can scan to join the guest WiFi without you reading out the password. Here is exactly what you would enter and what the tool encodes:
Content type: WiFi
SSID: OfficeGuest
Password: Welcome2024!
Security: WPA / WPA2 / WPA3
Size: 256px
Error correction: Medium
WIFI:T:WPA;S:OfficeGuest;P:Welcome2024!;;
Android and iOS prompt: "Join OfficeGuest?" — one tap, no password typing. The reader tab decodes the string back verbatim, confirming the password is correct before you print.
Common Mistakes and When to Use This Tool
- Choosing the wrong security type for your WiFi network. If your router uses WPA2 (which most routers manufactured after 2006 do) and you select "WEP" in the tool, the generated QR code will include the wrong security prefix. Phones that attempt to join with WEP parameters will fail or prompt for a password even though one is encoded. Check your router admin page or the label on the bottom of the router to confirm the security protocol before generating.
- Using a QR code for a URL that will change. A QR code encodes a specific URL at the moment you generate it. If you print 500 flyers with a QR code pointing to a product page and that page is later moved or removed, the QR code will lead to a 404. For printed materials where editing is impossible after the fact, point the QR code at a URL you control permanently — your own domain — rather than a third-party platform URL that can change without notice.
- Making the printed QR code too small. At 256px, the PNG looks sharp on screen, but if you scale it down to less than 2cm x 2cm in a print layout, most phone cameras at arm's length will struggle to focus and resolve the individual modules. For anything printed smaller than a business card, regenerate at 512px or higher to maximize the detail in the source file before your designer scales it in InDesign or Illustrator.
- Not verifying the code before distributing it. Generating and immediately decoding your own QR code using the Reader tab on this page takes under ten seconds and catches typos, encoding issues, or wrong content types before anyone else scans them. This is especially important for WiFi and vCard codes where a single wrong character in a phone number or password produces a technically valid but functionally broken QR image.
Privacy and Security
All QR code generation and decoding on this page happens entirely inside your web browser using JavaScript. When you enter a URL, type a WiFi password, fill in a contact's phone number, or upload an image file for decoding, that data is processed locally by your device's JavaScript engine — none of it is sent to Thefreeaitools's servers or any third-party service. Thefreeaitools does not log the content of QR codes you generate, does not store uploaded image files, and does not retain any form inputs between sessions. Closing or refreshing the page clears everything. The camera stream used by the live scan feature is accessed only while the camera is active and is immediately released when you click "Stop camera" — no frames are recorded, buffered server-side, or sent anywhere.
Thefreeaitools.com is served over HTTPS, which means the connection between your browser and the page itself is encrypted in transit. This protects against network-level interception of the page request. Because all sensitive inputs — WiFi passwords, email addresses, contact records — are processed locally after page load and never transmitted, they are not exposed to network interception at any point during use. If you are generating QR codes that encode credentials or personal information (WiFi passwords, vCard data), you can do so with confidence that the data goes no further than the tool's JavaScript running in your own browser tab.
