QR Code Generator
Turn a link or any text into a QR code you can download, generated right on your device.
How it works
This tool encodes whatever you type — a web address, some plain text, contact details, a Wi-Fi string — into a QR code using the qrcode-generator library, drawn onto a canvas right in your browser. The library automatically finds the smallest QR version that fits your input, then every module of the pattern is rendered in dark ink on a clean white background, with the standard four-module quiet zone included. Nothing you enter is sent to a server; the whole computation happens on your device, and the result is handed to you as a PNG you can download and reuse anywhere.
How to create a QR code
Type or paste your text into the box — the Generate button stays disabled until the field contains something. Pick the exported image size (Small, Medium or Large), choose an error-correction level, and press Generate. The code appears in a preview; hit Download .png to save qr-code.png at exactly the resolution you selected. You can regenerate as often as you like and tweak the settings with no sign-up, watermark, or limit.
A concrete example
Say you run a small café and want customers who see the poster on your door to open your menu. Paste your menu URL (for instance https://example.com/menu) into the box, keep Medium size and Medium error correction, and press Generate. The tool outputs a square black-and-white code, quiet zone included. Download it, drop the PNG into your poster design, print it, and a phone camera aimed at the code opens the menu — even if the edge of the print is a little marked. The same flow works for a Wi-Fi welcome card: type the connection text your guests scan, generate, and hand the code over instead of dictating a password.
What to expect
The widget produces a single square QR code exported as a PNG at 256, 512 (the default) or 1024 pixels. The input can be any text at all — a URL, a phrase, a phone number, a plain-text Wi-Fi or contact string all work, and the code is sized to the exact content you provide. Four error-correction levels are offered — Low, Medium, Quartile and High — trading how much data fits against how much of the code can be damaged while still scanning (roughly 7%, 15%, 25% and 30% of the surface). The PNG has a white background with the quiet zone built in and modules in a soft near-black ink; the on-screen preview is capped at 260 px wide for layout, but the downloaded file keeps the full chosen resolution. Everything is generated locally, with no upload, no watermark and no generation limit.
Common problems and fixes
“Text too long” error. The tool auto-selects the smallest QR version that fits, and each version has a hard byte capacity for a given error-correction level. If the message overflows, shorten it — or switch to a lower level such as Low, which packs the most data into the smallest pattern.
Still can't scan it. Print the code large enough — the module size matters more than the image's pixel count — keep the quiet zone clear of other graphics, and avoid shiny paper under strong light. The export already includes contrast (dark-on-white) and the quiet zone, so most scan failures come from the print, not the file.
Code looks extremely dense. Long content becomes many small modules. Shorten the text, and for links prefer a short URL — some tracking links carry hundreds of characters.
You plan to add a logo. This tool can't overlay one, but choosing High error correction leaves enough redundancy to place a small logo in the centre afterwards in an image editor.
Frequently asked questions
Do the codes ever expire?
No. The code encodes your text directly, so it keeps working forever as long as whatever it points to still exists.
Can I add a logo in the middle?
Not in this tool, but choosing High error correction leaves enough redundancy to overlay a small logo afterward in an image editor.
Is there a limit on how much text I can encode?
Yes, a practical one: each QR version holds a fixed number of bytes for a given error-correction level, and very long text can trigger an error in the tool. Shorten the message or drop the error-correction level to fit more.
Is my data sent anywhere?
No. The code is generated entirely in your browser on your device; nothing you type is uploaded or stored. (The encoder script is loaded from a CDN when the page loads, but your text never leaves your machine.)
Which image size should I choose?
512 pixels suits most screens, documents and slides. Choose 256 for a small embed where a lighter file helps, and 1024 for posters or print where the code may be scaled up.
What error-correction level should I pick?
Medium works well in most cases. Choose High if the code will be printed on something rough, smudge-prone or overlaid with a logo; choose Low if the text is long and the code will sit on a clean surface.