QR Code Generator
Type a URL, Wi-Fi string or plain text and the code redraws as you go. Pick a size, set error correction, then download the PNG.
A QR code is just a grid of black and white modules encoding a short string. Most codes that fail in the wild fail for the same handful of reasons, size, contrast and error correction.
How to use it
- 1Paste a URL, Wi-Fi string or any text into the field.
- 2Set the size you need and pick an error correction level.
- 3Download the PNG and drop it into your artwork.
What you can put in a QR code
Anything that fits as text. The most common payload is a URL, but the format is a convention rather than a rule. A phone number encodes as tel:+441234567890, an email as mailto:hi@example.com, a plain SMS as sms:+44... and a Wi-Fi network as WIFI:T:WPA;S:NetworkName;P:password;;, most phone cameras understand all of these and offer the right action.
Keep the payload short. Every extra character adds modules to the grid, and a denser grid needs to be printed larger to stay scannable. If you're encoding a long tracking URL, shorten it first; the difference between a 40-character and a 140-character URL is very visible in the resulting pattern.
Error correction, explained properly
QR codes use Reed–Solomon error correction, which means part of the grid is redundant data that lets a scanner reconstruct the payload even when some modules are unreadable. There are four levels: L recovers about 7% of the code, M about 15%, Q about 25% and H about 30%.
Higher isn't automatically better. More redundancy means more modules, so at a fixed physical size each module gets smaller and harder for a camera to resolve. Use L or M for screens and clean printed material. Use Q or H only when the code will be physically damaged, curved, printed on fabric, or has a logo placed over the centre.
Making sure it scans
Three rules cover almost every failure. First, size: a rough guide is that the code should be at least a tenth of the scanning distance, so a code read from two metres wants to be around 20cm across. Second, quiet zone: leave clear space equal to four modules on all sides, the code needs that margin to be detected at all. Third, contrast: dark code on a light background, never the reverse, and never a light code on a busy photograph.
Test on both an iPhone and an Android device before printing anything at volume, and test at the real distance and lighting, not on your monitor at arm's length.
Common questions
- Do QR codes expire?
- Static codes like the ones generated here never expire, the destination is encoded directly in the pattern, so the code works for as long as the destination does. Codes that expire are dynamic ones that point at a redirect service, which stops working if you stop paying for it.
- Can I put a logo in the middle?
- Yes, if you use error correction level Q or H and keep the logo under roughly 20% of the code area. Always rescan after adding it, error correction gives you headroom, not immunity.
- What's the smallest a QR code can be printed?
- Around 2cm square for a short URL scanned at close range, assuming clean printing and a proper quiet zone. Below that, camera resolution and print bleed start eating individual modules.
- Can I invert the colours?
- Most modern scanners cope with inverted codes, but many older ones assume dark-on-light and simply fail. If the design allows it, stay conventional.
- Is the content of my QR code private?
- Yes. The code is drawn in your browser and the PNG is generated locally, so whatever you encode, including Wi-Fi passwords, never leaves your device.