QR Code Generator🔒 100% local
Generate QR codes for URLs, text, WiFi, contacts, and more. Customize size and error correction.
Related Tools
Renders a QR code from whatever text you type, using the qrcode library on a canvas inside the page. You control the pixel size and the error-correction level, and the result is a PNG data URL you can download or copy; the code is rebuilt automatically as the text or a setting changes. Encoding WiFi credentials, a vCard or an internal URL here means the payload never reaches a third-party generator service.
How to use it
- Type or paste the payload - a URL, a WiFi string such as WIFI:T:WPA;S:MyNet;P:secret;; or a vCard.
- Set the size in pixels and pick L, M, Q or H for error correction.
- Press Download PNG to save qrcode-<timestamp>.png, or Copy to Clipboard.
Worked example
https://blank2done.com at 256px, level M, margin 2becomesdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAA...(2290-character data URL)Computed by running the qrcode library with the same options: the symbol is 25x25 modules (QR version 2) drawn at 256x256 with a two-module quiet zone, and the PNG data URL is 2290 characters long.
hello at 64px, level Lbecomesdata:image/png;base64,iVBORw0KGgoAAAANSU...(794-character data URL)The smallest useful settings on a short payload give a 64x64 PNG. The output is always a PNG data URL like this one: dark modules in #0A0F2C on white, with a two-module quiet zone.
When to use it
- Putting a link on a poster or a slide without shipping a long URL.
- Sharing a guest WiFi network without spelling out the password in a message.
- Encoding a vCard or a contact URL for a conference badge, where the payload should not be posted to a hosted generator.
What it does not do
- Error correction costs capacity, not just durability: the same URL is a 25x25 symbol at L and M but 29x29 at H, so a denser code can be harder to scan when printed small even though it survives more damage.
- Very long payloads are refused outright. At level H, 3000 characters produce 'The amount of data is too big to be stored in a QR Code' and the page shows that as the error text instead of an image.
- Copy to Clipboard checks for navigator.clipboard.writeItem, which is not part of the Clipboard API - the four methods are read, readText, write and writeText - so the catch branch runs and puts the base64 data-URL text on your clipboard rather than the image.
- Output is PNG only: no SVG, EPS or vector export, no logo overlay or colour picker, and no control over the encoding mode.
- WiFi, vCard and geo payloads are encoded as the literal text you type. The tool does not build or validate those grammars, so a missing semicolon yields a scannable code that does nothing useful.