Free Handy Tools

QR Code Generator

0 of 2331 bytes

Your QR code will appear here.

Turning text into a scannable square

A QR code is a two-dimensional barcode that stores text — most often a URL, but equally a Wi-Fi network, a vCard, a payment string or plain words. This generator encodes whatever you type, renders it at 128 to 512 pixels, and downloads it as either a PNG or an SVG.

Which format you want depends on where it is going. PNG is a fixed grid of pixels and is right for a screen, an email or a slide. SVG is vector and scales to any size without softening an edge, which is what a printer needs for a poster, a menu or packaging — a QR code enlarged from a small PNG is the most common reason a printed code will not scan.

Error correction, and what it costs

Every QR code carries redundant data so it still reads when part of it is dirty, creased or covered. There are four levels, and choosing one is a trade between resilience and capacity:

Capacity is counted in UTF-8 bytes rather than characters: ASCII costs one byte each, most accented Latin letters two, and CJK characters and emoji three or four — so a message that fits in English may not fit once translated.

  • L recovers about 7% of the code and holds up to 2,953 bytes.
  • M recovers about 15% and holds up to 2,331 bytes. This is the usual default.
  • Q recovers about 25% and holds up to 1,663 bytes.
  • H recovers about 30% and holds up to 1,273 bytes.

The capacity figures are for the largest code, and the counter above the input shows how many bytes you have used against the limit. Higher correction also means more modules in the same square, so each one is physically smaller — which is why H is not automatically the safest choice for something printed small.

How much text fits

In practice the limits are generous for URLs and tight for documents. A typical link is 30 to 80 bytes and leaves the code sparse and easy to scan; a few hundred bytes of vCard is comfortable. Long text is where codes become dense and unreliable, and the right answer is almost always to encode a short URL that points at the content rather than the content itself.

Getting a code that actually scans

Three things decide whether a printed code works. Size: as a rule of thumb the code needs to be about a tenth of the intended scanning distance, so a code read from two metres wants to be around 20 cm across. Quiet zone: the blank margin around the code is part of the specification, and the generator includes it — cropping it off is a reliable way to break a code that worked. Contrast: dark on light, with the light side genuinely light. Inverted codes and low-contrast brand colours are frequently unreadable, and so is any code printed on a reflective or curved surface.

Everything here runs in your browser — the text is never uploaded, and the code is generated locally. There is no tracking, no redirect and no expiry, because there is no server involved: the code encodes exactly the text you typed and will keep working as long as whatever it points to does. Always scan the finished code with a real phone before sending it to print.

QR code questions

Do QR codes expire?

Not the ones made here — the data is inside the image, so a static code works indefinitely. Codes that do expire are dynamic ones, which encode a link to a third-party redirect service; those stop working if the service does, and they can also count your scans.

Can I put a logo in the middle?

Yes, within limits, and that is what error correction is for. Level H tolerates roughly 30% damage, so a logo covering well under that — nearer 10-15% of the area to be safe — usually still scans. Test on several devices, because scanners differ in how tolerant they are.

What is the largest amount a QR code can hold?

The format tops out at 2,953 bytes at error correction level L, or 4,296 characters in the more compact alphanumeric mode. Long before that the code becomes visually dense and unreliable to scan, so treat the limit as theoretical.