~/TechPurAI
~/tools/qr-code-generator
Generators

QR Code Generator

320px
Error correction

A QR code is a two-dimensional barcode that packs text — a URL, a phone number, a Wi-Fi password, a plain sentence — into a pattern of black and white squares that a camera can read in a fraction of a second. This tool builds one directly in your browser: type or paste whatever you want encoded, and a scannable code appears immediately, with no upload, no account, and no third party sitting between the code and whoever scans it.

How a QR code actually stores data

Unlike a traditional barcode, which is a single line of varying-width stripes that can only hold a short numeric or alphanumeric string, a QR code is genuinely two-dimensional — it uses both height and width to pack in far more information. The pattern breaks down into a few functionally distinct regions: three large squares in three of the four corners (the "finder patterns") that let a scanner instantly recognize the image as a QR code and figure out its orientation regardless of the angle it's photographed from; smaller alignment patterns that correct for lens distortion; a timing pattern of alternating black and white modules that lets the scanner calibrate exactly where each data cell starts and ends; and then the actual data region, which is where your encoded text lives, spread across a grid using one of several data-encoding modes depending on what kind of characters you're storing (numeric-only, alphanumeric, byte/binary, or Kanji).

That data region also carries deliberate redundancy, generated using Reed-Solomon error correction — the same family of error-correcting code used in CDs, DVDs, and satellite communication. This is precisely what the error-correction level setting controls, and it's the single most important tradeoff in generating a usable code: more redundancy means the code can be damaged, obscured, or partially printed incorrectly and still scan successfully, at the cost of leaving less room in a given code size for your actual content.

Choosing a size and error-correction level that actually work

The right settings depend entirely on where the code is going to be scanned, not on some universal default. A QR code printed large on a poster or a storefront window, viewed from several feet away by a phone camera in decent lighting, can comfortably use a lower error-correction level — Low or Medium — since nothing is likely to obscure it and a lower level packs the same data into a visually simpler, easier-to-scan pattern. A QR code destined for a business card, a product label, or anywhere it might get a logo overlaid on top of it, on the other hand, benefits from High error correction specifically because that overlaid logo is, from the code's perspective, exactly the kind of localized damage the redundancy exists to tolerate.

Size matters just as much as error-correction level, and the two interact. A QR code with a lot of data encoded at a high error-correction level produces a denser grid — more individual squares packed into the same physical area — and a denser grid needs to be printed or displayed larger, or scanned from closer up, for a camera to resolve each square distinctly. If you've ever seen a QR code that phones struggle to scan, it's very often this: too much data, too much error correction, printed too small, so the individual modules blur together under a typical phone camera's resolution and focus distance. As a rule of thumb, keep the encoded content short — a compact URL rather than a long one wherever you have the choice — and match error correction to the actual risk of the code getting damaged or obscured, rather than defaulting to the highest setting out of caution.

What you can actually encode

Most QR codes in the wild link to a URL, and that's the simplest and most universal use — any phone's default camera app recognizes a URL inside a QR code and offers to open it directly, no separate scanner app required. But a QR code is really just a container for text, and several well-established conventions let that text trigger specific device behaviors beyond opening a browser. A string formatted as WIFI:T:WPA;S:NetworkName;P:Password;; prompts most phones to offer joining that Wi-Fi network directly. A string starting with tel: prompts a phone call; mailto: opens a pre-addressed email; sms: opens a pre-addressed text message. A vCard-formatted block of text (the same format used for exporting a contact) lets someone scan a code and save your contact details directly, which is the mechanism behind most "digital business card" products. None of this requires anything special from the QR code itself — it's entirely a matter of formatting the text you encode in a way your phone's operating system already knows how to interpret, and this tool will happily encode any of it exactly as typed.

Static versus dynamic QR codes

It's worth understanding this distinction even though this tool only makes the first kind. A static QR code, like the ones generated here, encodes its final destination directly — the URL or text is baked into the code itself, permanently, the moment it's generated. A dynamic QR code instead encodes a short URL controlled by a third-party service, which then redirects to your real destination; the appeal is that you can change where it redirects to later without reprinting the code, and the service can show you scan analytics. The tradeoff is a genuine one: a dynamic code depends on that third-party service staying online indefinitely — if the company shuts down or the subscription lapses, every printed code pointing at it breaks permanently, all at once, with no way to fix the already-printed materials. A static code has no such dependency; once generated, it works for as long as the destination URL itself stays valid, with nothing else that can go wrong in between. For anything printed in bulk or meant to last (packaging, signage, a book), that permanence is usually worth more than the ability to redirect it later.

Common QR code mistakes worth avoiding

The most frequent failure isn't a technical one — it's encoding a URL that's needlessly long, then wondering why the resulting code looks dense and scans unreliably from a normal distance. Shortening the destination URL before encoding it, or linking to a clean, short path rather than one full of tracking parameters, produces a visibly simpler and more reliably scannable code for free. A close second is insufficient quiet zone — the plain white margin QR codes need around their edge for a scanner to distinguish where the code starts. Cropping a QR code too tightly, or placing it directly against a busy background with no white border, is a common reason an otherwise correctly generated code fails to scan even though it looks fine to a human eye. This tool renders a code with a sensible built-in margin by default specifically to avoid that problem, but it's worth keeping in mind if you're placing the exported image into a larger design.

Test before you print

Always scan a QR code yourself, on an actual phone camera, at the size and distance it will realistically be viewed from, before committing it to print in any quantity. A code that looks perfectly readable at full size on a laptop screen can behave very differently once shrunk onto a flyer or business card — testing at the real intended scale is the only reliable way to catch a scanning problem before it's expensive to fix.

Frequently asked questions

Is a QR code generated here any different from one made by a paid service?

No — a QR code is a fully open, standardized format (ISO/IEC 18004), so a code generated by this free tool scans exactly the same as one from a paid service, as long as both encode the same data at a comparable error-correction level. Paid QR tools are usually selling something other than the code itself: analytics on how many times it's scanned, a dynamic redirect you can repoint later without reprinting the code, or design templates. If you just need a working QR code for a URL or piece of text, there's no functional difference.

What does the error-correction level actually change?

It trades data capacity for damage tolerance. QR codes carry built-in redundancy so they still scan even if part of the code is smudged, torn, or has a logo placed over the middle of it. Low (~7% of the code can be destroyed and it still reads), Medium (~15%), Quartile (~25%), and High (~30%) are the four standard levels defined by the QR spec. Higher tolerance means a denser, more complex-looking code for the same data, because more of its capacity goes to redundancy instead of your actual content.

Why did generation fail with a message about the text being too long?

QR codes have a hard capacity ceiling that depends on both the amount of data and the error-correction level chosen — the higher the error correction, the less room is left for your actual content at a given code size. If your text is right at the edge, switching to a lower error-correction level (Low or Medium) usually gives enough extra headroom to fit it. For genuinely long text, a QR code becomes visually dense and harder for cheaper scanners to read reliably regardless — shortening the text, or encoding a short link that redirects to the long content, works better in practice.

Does anything about the text I enter get sent to a server?

No. The QR code is drawn directly onto a canvas element in your browser using a JavaScript encoding library — nothing you type is transmitted anywhere, logged, or stored. This matters more than it might seem: some online QR generators route your URL through their own redirect service by default, meaning every scan of the resulting code — location, device, timestamp — gets logged by that third party, not by you. A code generated here just encodes exactly the text you typed, with no intermediary.