The Util Box

QR Code Generator

Free online qr code generator. Generate QR codes for text/URLs. Have fun right in your browser.

Preview

Embed this tool

Copy and paste the code below into your website to embed this tool for free. An attribution link to The Util Box is required.

<iframe src="https://www.theutilbox.org/embed/qr-code-generator" width="600" height="500" frameborder="0" style="border: none; max-width: 100%;" title="Free QR Code Generator tool from The Util Box"></iframe>
<!-- Free tool by The Util Box — https://www.theutilbox.org/tools/qr-code-generator -->
<a href="https://www.theutilbox.org/tools/qr-code-generator">QR Code Generator by The Util Box</a>

QR Code Generator — Custom QR Codes with Downloadable PNGs

This QR code generator renders a scannable code on a canvas and lets you download it as a PNG. You control three things that matter for real-world printing: the pixel size, the foreground and background colours, and the error correction level. Generation happens entirely in your browser — the content you encode is never uploaded, which makes it safe for QR codes containing internal URLs, serial numbers or WiFi details.

Almost any string can be encoded. A URL, plain text, an email address, a phone number, a BEGIN:VCARD block, or a WiFi login string all work, because a QR code is just text in a square matrix — the scanner decides what to do with it based on the first characters.

Error Correction Levels: What L, M, Q and H Actually Buy You

Every QR code contains redundant data so that a damaged or partially hidden code still scans. The level sets how much of that redundancy is included, and the trade-off is direct: higher levels survive more damage but hold less data, so the printed modules get smaller and the code gets harder to scan at a distance.

Level Recovery Use it when
L — Low ~7% Clean digital display on a clean screen, e.g. a QR code shown in a browser window.
M — Medium ~15% The default here, and the right answer for most printed packaging and labels.
Q — Quartile ~25% Printed on packaging, stickers or anything that may get scratched or dirty.
H — High ~30% Placing a logo over the centre, printing on fabric, or mounting outdoors where weather will mark it.

If you want a logo in the middle, jump straight to H — it is the level that makes the centre knockout tolerable. At L or M the same logo will break the code.

Why Scannability Fails More Often Than Encoding

A correctly generated code that will not scan is a much more common problem than a broken one. The causes are almost all about contrast and print size rather than the data:

  • Contrast is the single biggest factor. Scanners look for dark modules on a light background. A light-coloured code on a dark background fails on many scanners, and mid-tones like pastel blue on white can fail too. Keep black on white unless you have tested the specific pairing.
  • Print it large. The standard is roughly the size of a business card — about 3.5 cm — for a code holding a URL. Small codes on flyers, or codes shown in a video, simply will not resolve.
  • Do not round the corners or add heavy effects. Rounded modules, drop shadows, gradients and heavy stylisation all degrade scannability.
  • Leave a quiet zone. There must be a light margin of roughly four modules around the code, or scanners will pick up surrounding graphics as part of it.
  • Always test on the real target. Print it, then scan it with the two or three phones your audience actually uses. A code that works in a preview is not evidence that it works in print.
  • Keep the contrast at least 3:1. Use the Color Contrast Checker before committing to a branded colour scheme.

What to Encode

The generator accepts any text, but the value comes from choosing the right format for the job:

Content Scanner behaviour
https://example.com Opens a link. By far the most common use.
mailto:a@example.com Opens a pre-addressed email draft.
tel:+441234567890 Prompts to call. Include the country code, or it will fail for international numbers.
BEGIN:VCARD…END:VCARD Offers to save a contact. This is the format for business cards and event badges.
WIFI:T:WPA;S:Network;P:Password;H:false;; Joins a network on Android. iOS requires version 11+ and the H:true hidden flag behaves differently, so test on both.
BEGIN:VEVENT…END:VEVENT Offers to add a calendar entry. Requires a trailing UTC timestamp to be reliable.

These structured formats are verbose, which is exactly the case for raising the error correction level and printing large — a long WiFi or vCard payload produces a dense code with small modules that struggles in print.

A Note on Privacy

Because the code is drawn locally, the encoded content never leaves your device. That is worth knowing when generating a code for an internal tool, a guest WiFi network, or a document that is not yet public — you can build and export it without publishing anything.

The reverse also holds: anyone who scans the code can read it. A QR code is not encryption. It obscures a URL from a passing human, but not from a camera, so never encode credentials, tokens or personal data you would not put on a poster.