QR Code Generator

Type any text or URL and download the QR code as a PNG. Generated locally in your browser β€” nothing is sent to a server.

How QR Code Generator Works

This tool encodes any text or URL you type into a scannable QR code, drawn to a canvas entirely in your browser using a JavaScript QR encoding library -- nothing is uploaded to a server, so it works even offline once the page has loaded. You can choose the error correction level and download the result as a PNG.

Formula & Method

The QR code is generated by choosing the smallest QR version (grid size) that can hold your text at the error correction level you've selected, then laying out the data, error-correction codewords, and required pattern markers according to the standard QR code specification. Higher error correction levels (L/M/Q/H) let more of the code be damaged or obscured (roughly 7%, 15%, 25%, and 30% of modules respectively) and still scan correctly, at the cost of needing a larger grid for the same amount of text. Around each grid the tool adds a quiet-zone margin (blank border) that scanners rely on to find the code's edges.

Worked Example

The default text, https://clickulate.net (22 characters), encoded at the default Medium error correction level, produces a 25 × 25 module grid -- a QR "version 2" code. Switching to a lower error correction level for the same text can shrink the grid, while switching to High correction or entering much longer text will grow it, since more error-correction data or more content both need extra modules to store.

Frequently Asked Questions

Which error correction level should I use?
Medium is a good default for most uses. Choose High if the code will be printed small, printed on an uneven surface, or might get a logo overlaid on it, since it can tolerate more damage. Choose Low only when you need the smallest possible grid and the code will be displayed cleanly on a screen.
Is there a limit to how much text I can encode?
Yes -- QR codes have a maximum data capacity that depends on the error correction level (higher levels hold less raw data at a given size). If your text is too long to fit, the tool will tell you it's too long to encode rather than producing a broken code.
Does this send my text to a server to generate the QR code?
No -- the QR code is drawn entirely client-side in your browser using JavaScript, with no network request involved. This makes it safe to use for sensitive text like Wi-Fi passwords or private URLs.
What size will my downloaded PNG be?
It matches the grid size you see in the preview: the module count times your chosen cell size, plus a quiet-zone margin of 4 modules on each side. Increasing the "Size" slider makes each module (and therefore the whole image) larger in pixels without changing the QR code's underlying grid or data.
Enter text or a URL above