Skip to content
AgileLogics

QR Code Generator

Encodes any text or URL into a downloadable QR code image, entirely in your browser.

How it works

Enter text or a URL, choose an error-correction level, and click Generate.

How do I make a QR code for a link?

Paste the URL (or any text) into the box, choose an error correction level, and click Generate. A 256 × 256 pixel PNG appears underneath; click Download to save it as qrcode.png. The code holds your link directly, so it will keep working indefinitely and needs no account, subscription or redirect service.

Steps

  1. Enter the content: a web address, a phone link, plain text, or a Wi-Fi network string.
  2. Pick Error correction: Low, Medium (default), Quartile or High.
  3. Click Generate.
  4. Scan the preview with your phone camera before you print anything.
  5. Click Download.

Step 4 is the one people skip. A typo in a URL is invisible once it's a pattern of squares.

How the generator builds the code

QR codes are standardised in ISO/IEC 18004. This tool uses the open-source qrcode library (version 1.5.4), which picks the smallest symbol version that fits your content and switches automatically between numeric, alphanumeric and byte encoding to keep it compact. Text outside plain ASCII, such as accented letters or emoji, is stored as UTF-8 bytes.

Setting Value in this tool
Output PNG, 256 × 256 pixels, black on white
Version (size) Automatic, from 1 (21 × 21 modules) up to 40 (177 × 177)
Error correction Your choice: L, M, Q or H
Quiet zone 4 modules of white border, as the standard requires

Error correction levels

Reed-Solomon error correction lets a scanner rebuild missing or damaged parts. More recovery means more modules, so the same content makes a denser code. Denso Wave, the company that invented QR codes, describes the trade-offs on its error correction page.

Level Approx. recovery Size for a 47-character URL Good for
L 7% Version 3, 29 × 29 Screens, slides, clean indoor print
M 15% Version 4, 33 × 33 General use (default)
Q 25% Version 5, 37 × 37 Packaging, labels that get handled
H 30% Version 6, 41 × 41 Outdoor signs, rough surfaces

The sizes come from encoding https://agilelogics.com/tools/qr-code-generator with this tool's library. Because the PNG is always 256 pixels wide, including the 4-module white border on each side, a denser code means smaller modules: a 33-module code gets just over 6 pixels per module, while a 57-module code gets just under 4.

Keep the content short

Every extra character makes the code denser and harder to scan from a distance. A 109-character product link with three UTM tags needs version 7 at level M, against version 4 for the 47-character one. If your URL is long, shorten the path or use a shorter landing page address. Make sure any special characters in query strings are properly escaped first; the URL encoder can do that.

What you can encode

Content Example Scanning a phone does
Web address https://example.com/menu Offers to open the page
Phone number (RFC 3966) tel:+14155552671 Offers to call
Email (RFC 6068) mailto:hello@example.com Opens a new email
Wi-Fi network WIFI:T:WPA;S:CafeGuest;P:espresso2026;; Offers to join the network
Plain text Locker 14, code 3391 Shows the text

The Wi-Fi format isn't part of the ISO standard; it's a convention popularised by the ZXing barcode project and documented in its barcode contents notes. Current iPhone and Android cameras understand it.

For two common jobs there are dedicated generators: a WhatsApp chat link you can then encode here, and the Google review QR generator, which builds the review URL for you.

Printing tips

  • Keep the white border. The specification calls for a quiet zone of four modules on every side (Denso Wave's guidance says the same), and this tool's PNG includes exactly that. Don't crop it off when you place the code in a design, and don't let text or graphics run into it; on a busy or dark background, leave extra white margin around the PNG.
  • Mind the physical size. At 300 dpi, 256 pixels prints about 2.2 cm (0.85 in) wide. For posters, scale it up in an image editor using nearest-neighbour resampling, which keeps the square edges crisp. The image resizer also works, but it smooths edges slightly as it enlarges, so test the printed result.
  • Keep contrast high. Dark modules on a light background scan most reliably. Inverted (light on dark) codes trip up some scanners.
  • Test at the real distance. Scan from where people will actually stand.

Last updated

Frequently asked questions

Do these QR codes expire?
No. The code contains your text or URL directly, with no redirect service in between, so it works for as long as the content it points to exists. The flip side is that it can't be edited after printing: to change the destination, make a new code.
Which error correction level should I pick?
Keep the default, M (about 15% recovery), for most uses. Choose L for long content on screens, where nothing gets scratched or smudged. Choose Q or H for codes on packaging, outdoor signs or anything that might get dirty or partly covered.
How much text can a QR code hold?
At the largest size (version 40) with level L, the limits are 7,089 digits, 4,296 uppercase letters and digits, or 2,953 bytes of other text. Higher error correction lowers those numbers; at level H the byte limit is 1,273. Past the limit you'll see "The amount of data is too big to be stored in a QR Code".
Can I scan and track how many people used my code?
Not with this generator. Tracking requires a redirect URL that logs each visit. You can approximate it by adding UTM parameters to your link before encoding it, then reading the campaign in your own analytics.
Is anything sent to a server?
No. The QR code is generated by the open-source qrcode JavaScript library running in your browser. Your text never leaves the page.