What is a QR code generator?
A QR code packs text — a URL, a Wi-Fi login, a contact card, a payment address — into a square of black and white modules that any phone camera can read in a fraction of a second. A generator does the encoding: it converts your text into the code's data, adds error-correction information, and draws the module pattern with its finder squares and quiet zone in the right places. Get any of those steps wrong and the result is a pretty square that no scanner will ever read, which is why this tool uses the standard, battle-tested encoding library rather than a home-grown pattern maker.
Everything happens on this page. The text you type is encoded by your browser and never transmitted — a property worth insisting on for a tool whose whole job is often to encode a password. For the same reason, this is the one tool on the site that does not restore your work after a refresh: there is no draft, by design.
How to use this tool
- Type or paste the text or URL into the box above. The preview updates as you type (or press Generate), and the message line confirms the code's version and density.
- Pick an error correction level: M for screens and clean print, H for small, rough or logo-carrying codes, L for the simplest possible code. The trade-off is explained in the section below.
- Pick a PNG size comfortably larger than the size it will be shown at — resizing a PNG down is harmless, stretching it up is not.
- Download PNG for screens and documents, or Download SVG for print and design work — the SVG is resolution-independent and always matches the preview.
- Before printing a batch, scan the preview with your own phone. Ten seconds of checking beats a thousand unusable leaflets.
Error correction: the one real choice
A QR code carries more data than your text: a Reed–Solomon error-correction layer that lets scanners reconstruct the message when part of the code is damaged, dirty or covered. The four standard levels recover roughly 7% (L), 15% (M), 25% (Q) and 30% (H) of the code. That resilience is not free: the correction data takes room, so the same text at H produces a larger, denser code than at L — and the maximum content shrinks, from roughly 2,953 bytes at L to roughly 1,273 bytes at H. The practical rule: the harsher the code's life — outdoor print, tiny size, a logo stamped in the middle — the higher the level worth paying for; a code that lives on a screen never needs more than M.
Sizing and printing, briefly
Scanners need contrast and a quiet zone: the plain margin around the code is part of the specification, and both downloads include it — do not crop it away. As a rule of thumb, a code should print at least 2 cm (about 0.8 in) square for phone scanning at arm's length, and grow with viewing distance. The PNG sizes top out at 2048 px — far beyond any print need at that physical size — and the SVG removes the question entirely by scaling without limit. Dark modules on a light background is the combination every scanner expects; inverted codes read unreliably on older devices.
Examples
A short URL like https://example.com at level M
produces a compact version-2 code — 25 modules per side, readable
at almost any size. A full vCard contact record, a few hundred
characters, lands somewhere in the middle versions. A thousand
characters of plain text pushes towards the dense end: still one
code, but one that wants level L or M, a generous print size, and
a good scanner. If your content approaches the limits the tool
reports, that is the format telling you the message belongs
behind a short link instead.