QR Code Generator
Standards-compliant QR codes with L/M/Q/H error correction and PNG export, fully offline.
The 4-module quiet zone required by the standard is included inside the PNG. Text is encoded as UTF-8 in byte mode; versions 1 to 10 are supported.
About QR Code Generator
In a version-2 QR code at error correction level M, 16 of the 44 codewords are Reed-Solomon parity — more than a third of the symbol exists purely to survive damage. The most common reason a printed code fails to scan is not print resolution but a missing quiet zone: the standard requires four empty modules on all four sides. This generator builds the symbol entirely in your browser and keeps that margin inside the exported PNG.
How to use QR Code Generator
- 1
Type or paste your text or URL into the content box; the code redraws on every keystroke.
- 2
Pick an error correction level: L for on-screen use, H when the code will be printed on something that gets scuffed.
- 3
Set the module size slider to match the output dimensions you need for print or web.
- 4
Leave the mask on Auto so the lowest-penalty pattern of the eight wins; pin a fixed 0-7 only when debugging or comparing output.
- 5
Click Download PNG — the 4-module quiet zone is baked into the image.
Frequently asked questions
Does a higher error correction level always make the code more reliable?
No. Level H recovers about 30% of the symbol but cuts data capacity sharply, pushing the same text into a larger version with smaller modules. At a fixed print size H can scan worse than M, because each physical module is tinier. M is the right balance for most jobs.
How much data can this tool encode?
Versions 1 through 10 are implemented: at most 271 bytes at level L, 213 at M, 151 at Q and 119 at H. That covers URLs, WiFi credentials and short text, but a long vCard will trigger the capacity error. Only byte mode is implemented — numeric and alphanumeric modes, which pack pure digits far more tightly, are not.
How is non-Latin text handled?
Text is converted to UTF-8 and written in byte mode. Virtually every modern scanner app auto-detects UTF-8, but the standard assumes ISO-8859-1 by default and this tool does not emit an ECI header, so older industrial scanners may render non-Latin text incorrectly. Each Persian or accented character also costs two bytes, so capacity fills faster than the character count suggests.
Is the content uploaded anywhere?
No. The whole pipeline — encoding, Reed-Solomon over GF(256), mask selection and canvas rendering — runs in your browser and makes no network requests. Disconnect the machine and the tool still works.