Create scannable QR codes from any text or link
All generation runs locally in your browser

The QR Code Generator turns your text into a QR code image you can download and share. It’s great for URLs, contact details, Wi‑Fi credentials, event check-ins, and any time you want “scan instead of type”.
Privacy note: generation runs locally in your browser. Your input text does not need to be sent to a server to create the code.
If the QR version ends up being then modules. With pixels and modules of margin, the approximate pixels-per-module is:
If your phone struggles to scan, bump up to make each module larger.
Scenario: You print a poster that takes people to a registration page.
Input:
Settings: PNG, 320px, error correction .
How to use the result: Print the QR with enough white space around it and test-scan from a few steps away.
Scenario: Guests scan a code and join your Wi‑Fi.
Input: a Wi‑Fi payload string (common format):
Result: A QR code that many phones interpret as “Join Wi‑Fi”.
Tip: Use error correction or if you expect low-quality printing.
Scenario: You want a QR that prints to about wide and remains easy to scan.
A handy sizing model: for a QR version , the grid width in modules is
If you render the QR at width pixels with margin modules, the approximate pixels-per-module is:
Example: Suppose the chosen version ends up being (so ), you set and :
How to apply: If scanning is flaky, increase (bigger modules) or shorten the input so the tool can pick a smaller version.
Make it scan on the first try
QR codes follow a standard that defines how text becomes a matrix of dark/light modules, along with error correction data. This calculator chooses a QR version that fits your input and settings, then renders it as PNG or SVG.
Each QR version has a fixed module grid size :
Higher versions (bigger ) can store more data, but the modules become smaller at a fixed pixel width.
Error correction improves robustness. Roughly, the recovery capability increases with the level:
Higher levels can reduce the maximum data you can store, so if your input is very long you may need to lower the level or increase the output size.
If your URL contains spaces, non-ASCII characters, or complex query strings, it’s safer to encode them properly. Our URL encoder helps you produce a clean, scanner-friendly URL string.
PNG is great for screens and most uploads. SVG is great for printing and design tools because it scales cleanly.
Denser codes usually mean your input is long or error correction is high. Increase size, shorten input, or use a lower error correction level.
There’s no single number, but bigger modules are easier to scan. As a rule of thumb, increase the pixel width until your phone can scan it quickly from the intended distance.
Often yes, but keep it small. Use higher error correction (like or ) and test-scan after exporting and printing.
Treat QR codes like links: scan only from trusted sources and confirm the destination before opening or installing anything.
Limitations
References
QR code structure is standardized by ISO/IEC 18004. For practical guidance, test with real devices and real print outputs.
Want to share a QR that points to a complex URL? Clean it up first using Encode/decode URL-formatted strings.
Use a simple chronometer (stopwatch) to track elapsed time down to milliseconds. Runs locally in your browser.
Normalize email addresses to a standard format for easier comparison. Useful for deduplication and data cleaning. Runs locally in your browser.
Estimate the time needed to consume a total amount at a constant rate, and get an expected end time. Runs locally in your browser.
Parse and decode your JSON Web Token (JWT) and display its content. All computation runs locally in your browser.
Know which file extensions are associated to a MIME type, and which MIME type is associated to a file extension. Includes a full MIME types table.
Generate random Lorem Ipsum placeholder text with customizable paragraphs, sentences, and word counts. Runs locally in your browser.