QR Code Generator & Reader
Generate a QR code from any text or URL, choose its size, error correction level, and colors, download it as a PNG or SVG, or read a QR code from an image when your browser supports it.
QR content
Choose a type; the fields adapt to each use.
Appearance
Advanced customization
A logo automatically uses H error correction and the result is checked again.
QR ready
Preview and files ready to use.
https://prontouso.com
Test before printing. Low-contrast colors, large logos and dense QR Codes may reduce scan reliability.
How it works
Enter your input
Fill in the values, paste your text, or upload the file this tool works with.
See results instantly
Most tools update live as you type; a few use a single button. Either way, the result appears right on this page.
Use your results
Copy, download, or share what the tool produces — you're always in control of the output.
What is QR Code Generator & Reader?
The QR Code Generator & Reader is a tool for creating custom QR codes from a link, Wi-Fi network, WhatsApp chat, vCard contact, or text — with adjustable colors, a center logo, and error correction level — and for reading QR codes from an image, the clipboard, or the camera, entirely in your browser.
How to generate and read QR codes with Wi-Fi, WhatsApp, and vCard
The "01. CREATE QR CODE" tab builds a code from a link, a Wi-Fi network, a WhatsApp chat, a contact (vCard), or free text, with adjustable colors, logo, and error correction. The "02. READ QR CODE" tab decodes a code you upload, paste, or capture with the camera, and shows the classified content before any action.
The five content types
Each type builds a different payload behind the code. "Link / URL" stores the address you typed, unchanged. "Wi-Fi" stores the network, password, and security protocol (WPA/WPA2/WPA3, WEP, or no password) in a syntax phones themselves recognize to offer connecting automatically, with an option to mark the network as hidden. "WhatsApp" uses only the digits of the number you enter to build a wa.me link, with the optional initial message already filled into the chat. "Contact / vCard" stores a vCard 3.0 card with full name (required), phone, email, company, and job title (all optional), which a phone offers to save straight to contacts. "Free text" stores any content with no special formatting.
Error correction: why it switches on its own when you add a logo
The correction level (L, M, Q, or H) sets how much of the code can be damaged or covered and still scan: L recovers from the least damage and fits the most data; H recovers from the most damage but fits less data per code. Choosing an image under "Center logo" forces level H automatically and disables the selector — it's the only level with enough redundancy to let a logo cover the middle of the code without breaking the scan.
The read-tested badge: the tool decodes its own code before handing it over
After generating the QR code, the tool reads the image back with the same decoding engine used on the reader tab, and compares the result against the original content. A "✓ READ TESTED" badge confirms the code decodes back to exactly what you typed; a "⚠ TEST BEFORE USE" badge appears when that check fails or is inconclusive — usually because the foreground and background colors are too close — and is a signal to adjust the colors before using the code.
Colors, presets, and advanced options
Five ready-made combinations — Black and white, ProntoUso, Violet, Blue, and Warm — set the foreground and background in one click. Open "Advanced customization" to pick custom colors in both pickers, change the error correction level, the size (256, 512, or 1024 px), and the margin from 0 to 8 modules around the code. Changing a color manually deselects the active preset.
How much text fits, by content type and correction level
Capacity doesn't depend only on the correction level — the content's alphabet matters too:
- Digits only: up to 7,089 characters at level L, dropping to 3,057 at H.
- Simple alphanumeric (digits, UPPERCASE letters, and the symbols space $ % * + - . / :): up to 4,296 at L, 1,852 at H.
- Any other text — lowercase letters, accents, emoji: up to 2,953 at L, 1,273 at H, the same ceiling that always applies once a logo is set, since it forces level H.
Reading QR codes: file, clipboard, or camera
The reader tab accepts three sources: choosing an image file (or dropping one onto the reading area), pasting a copied image, or using the device's rear camera, which checks every frame automatically and stops on its own as soon as it finds a code — no capture button to press. All three process the image locally, without sending it to a server.
Once decoded, the content is classified as Link/URL, WhatsApp, Wi-Fi, vCard, or Text, showing the relevant origin (a link's domain, the Wi-Fi network name, the contact's name) and a specific safety note before any action. An "Open link" button only appears for Link/URL or WhatsApp QR codes — no link ever opens automatically.
Privacy: generation and reading stay in the browser
Both creating and reading a QR code happen entirely in your browser — no content, uploaded image, or camera frame is ever sent to a server. Even so, a QR code itself isn't a security layer: anyone who scans it sees the full content, including a Wi-Fi network's password, so treat a code holding sensitive data with the same care you'd treat that data itself.
Frequently Asked Questions
How much text can a QR code hold?
It depends on the content's alphabet and the error correction level: digits alone fit the most (up to 7,089 characters at level L), simple alphanumeric text fits an intermediate amount (up to 4,296 at L), and any other text — including lowercase letters, accents, and emoji — uses the most limited mode (up to 2,953 at L, or 1,273 at H). Adding a logo forces level H, reducing the available capacity.
Why does the correction level switch to H on its own when I add a logo?
Because the logo covers part of the code, and level H is the only one with enough redundancy to reconstruct that covered area during a scan. That's why the correction selector is disabled while a logo is set.
What does the "READ TESTED" badge mean?
After generating the code, the tool decodes it back internally and compares it against the original content. The green badge confirms that check passed; the warning badge appears when it fails, usually because of low-contrast colors — adjust the colors until the green badge appears before using the code.
Does the Wi-Fi QR code work on any phone?
The syntax used is recognized by most native camera readers on Android and iOS (iOS 11 and later), which offer to join the network directly when scanned. Anyone who scans the code sees the network's password in plain text, so treat it with the same care you'd treat the written password.
Is it safe to scan an unknown QR code with this tool?
Safer than opening it directly with a phone's camera: the reader tab shows the content type, the origin (domain, network, or contact name), and a specific safety note before any action, and only offers an "Open link" button for Link/URL or WhatsApp QR codes — no link opens on its own.
Should I download PNG or SVG?
Use SVG when you need a crisp, scalable file for a website or print layout, including the logo embedded as a vector image. Use PNG for quick uploads, chat, documents, or tools that only accept a raster image.
Does camera reading send the image to a server?
No. Every frame is analyzed locally in the browser; no image, video, or decoded content ever leaves your device, whether it comes from the camera, an uploaded file, or a pasted image.
Why won't my printed QR code scan?
Usually low contrast between the colors, a logo too large for the correction level, or the printed code too small for its data density — the on-screen warning flags these cases. Test-scan the printed version before distributing it.
Related Tools
- PopularAvailableLocal
UUID Generator
Generate standards-compliant UUID v4 and GUID identifiers individually or in bulk.
- PopularAvailableLocal
JSON, YAML & XML Formatter
Format, minify, and validate JSON and XML, and convert between JSON and YAML.
- PopularAvailableLocal
Base64 Encoder/Decoder
Encode and decode text using Base64 locally.
- PopularAvailableLocal
URL Encoder/Decoder
Encode and decode URLs in separate tabs, with batch and recursive options.
- PopularAvailableLocal
Unix Timestamp Converter
Convert Unix timestamps (seconds and milliseconds) to dates and vice versa.
- AvailableLocal
HTML Entity Encoder/Decoder
Encode and decode HTML entities safely.
- AvailableLocal
Regex Tester
Test regular expressions and preview replacements.
- AvailableLocal
JWT Decoder
Decode JWT header and payload locally.
- AvailableLocal
Cron Expression Generator & Validator
Build, validate, and decode 5-field cron expressions with next run times.
- AvailableLocal
JSON Diff Checker
Compare two JSON values and list changed paths.