QR Code Generator
Paste a link or any text, get a QR code instantly, and download it as a PNG. Everything happens in your browser — nothing is uploaded or stored.
What is a QR code?
A QR ("Quick Response") code is a two-dimensional barcode that phones can read with their camera. It can hold a web link, plain text, Wi-Fi credentials, contact details, or payment information — up to a few thousand characters. Invented in 1994 for tracking car parts in Japanese factories, it's now the default bridge between the physical world and a URL.
Common things to encode
| Use | What to paste |
|---|---|
| Website / menu / portfolio | The full URL, including https:// |
| Wi-Fi login | WIFI:T:WPA;S:NetworkName;P:password;; |
| Email compose | mailto:you@example.com |
| Phone call | tel:+15551234567 |
| SMS | SMSTO:+15551234567:Hello |
| Plain text note | Any text — appears when scanned |
The number that decides whether it scans: modules, not pixels
Most generators report a pixel size, and pixels are the wrong unit for anything that will be printed. What matters is the module count — the little black squares along one edge. A QR code holding a short link is 29 modules across; the same code holding a paragraph might be 77. Printed at the same physical size, the first scans easily and the second does not, because a camera has to resolve one module to read anything at all.
This generator reports the version and module count with every code, plus the smallest size it can be printed at. The floor used here is 0.5 mm per module, which is a conservative figure for phone cameras at close range; below it, failures start showing up in poor light, on glossy stock and at an angle. The quiet zone — four modules of blank margin the specification requires on every side — is included, because a code printed flush against other artwork often fails for that reason alone.
For reading distance, the working rule in the print trade is that a code scans from about ten times its own width. A 25 mm code on a leaflet is comfortable at arm's length; the same code on a poster meant to be read from across a room needs to be several times larger. Codes that fail in the field are almost always dense codes printed small.
Error correction is a trade, not a quality setting
The L / M / Q / H control is not "better" as it goes up. Each level reserves part of the code for recovery data, so a higher level means more modules for the same text — a bigger, denser code that is harder to scan small:
| Level | Recovers | Use it when |
|---|---|---|
| L | 7% damage | On screen only. Thin for print — a fold or a coffee ring can kill it. |
| M | 15% damage | The usual default for printed material. |
| Q | 25% damage | Labels, packaging, anything that gets handled or scuffed. |
| H | 30% damage | When a logo sits in the middle — the logo is the damage. |
That last row is the one people are usually looking for without knowing the name. Putting a logo over the centre of a QR code works because the code can rebuild what the logo covers, and it only works reliably at level H.
Non-ASCII text: a place most generators get it wrong
The library used here defaults to an encoder that truncates every character to a single byte. Under that default "café" scans back as "caf?", Korean and Japanese become garbage, and emoji disappear — while the generator still reports success, so the damage is only discovered after the code has been printed. This page wires up the library's UTF-8 encoder instead. Plain ASCII produces byte-for-byte identical output either way, so nothing that already worked changed; accented, non-Latin and emoji text now survives the round trip. It is worth testing any code containing non-English text by actually scanning it, whichever generator made it.
Sources
- DENSO WAVE — Information capacity and versions of QR Code — from the company that invented the format. The version-to-module-count relationship (version n is 4n+17 modules across) and the capacity figures for each error-correction level come from here.
- DENSO WAVE — Determining the code area — the quiet-zone requirement and the guidance on physical sizing that the minimum-print figure above is based on.
The format itself is standardised as ISO/IEC 18004; the DENSO WAVE pages above are the freely readable statement of the same rules.
Tips for QR codes that actually scan
- Keep the content short. Longer text = denser code = harder to scan. Use a short URL when possible.
- Print size: minimum ~2×2 cm (0.8 in) for a poster viewed at arm's length; bigger for further away — rule of thumb is scanning distance ÷ 10.
- Contrast matters: dark code on light background. Never invert (light-on-dark fails on many readers).
- Leave the quiet zone — the white margin around the code (included in our PNG) must not be cropped.
- Higher error correction (Q/H) lets the code survive scratches or a small logo overlay, at the cost of density.
Frequently asked questions
Do these QR codes expire?
No. This generator creates static QR codes — the content is encoded directly in the pattern, forever. (Services that offer "dynamic" QR codes redirect through their server, which is how they can expire or charge subscriptions.)
Is my link or text uploaded anywhere?
No — the code is generated entirely in your browser with open-source code. Disconnect from the internet after loading the page and it still works.
Can I use the QR code commercially?
Yes. QR codes are an open ISO standard with no licensing fees for use. The codes you generate here are yours.
Why won't my QR code scan?
Usually: printed too small, low contrast, cropped quiet zone, or a typo in the URL (test it before printing!). Try error correction Q or H and a larger size.