QR Code Generator
Turn a link, a phone number or any short piece of text into a QR code and download it as an image. The encoding happens in the page using a complete QR implementation, so the content you type is never sent to an API to be turned into a code.
What Gets Encoded, and Where
Most online QR generators work by sending your text to a server, generating the image there and sending it back. That is invisible to the user and it means anything you encode — a private meeting link, a Wi-Fi password, a ticket reference — passes through a third party. This page instead contains the whole encoding process, so the code is computed from your text locally and nothing leaves the browser.
- The input accepts any text. URLs are the common case, but phone numbers, contact details, Wi-Fi credentials and plain notes all encode the same way.
- Output size is configurable between 64 and 512 pixels. Values outside that range are clamped rather than rejected, so an accidental extra digit cannot produce a vast image.
- Foreground and background colours are both adjustable, with black on white as the default.
- Four error correction levels are available, trading capacity for resilience against damage and poor lighting.
- The result can be downloaded either as a raster PNG at the chosen size or as a vector SVG that scales to any dimension without becoming soft.
Making a Code That Scans First Time
- Paste or type the content to encode. Keep it as short as you can — every extra character increases the density of the pattern and makes the code harder for a camera to resolve.
- Set the size. For print, 256 pixels is a reasonable starting point, but bear in mind that the physical size matters more than the pixel count: a code printed small will not scan however many pixels it contains.
- Choose an error correction level. For a code that will be printed on packaging or a poster where it might get scuffed, raise it. For a code on a clean screen, the lower level produces a less dense and easier-to-scan pattern.
- Set the colours. Keep strong contrast and, importantly, keep the foreground dark and the background light.
- Preview by scanning with your own phone before you print or publish anything. This takes ten seconds and catches every colour and size problem immediately.
- Download as PNG for screen use or SVG if the code will be scaled to different sizes, since vector output avoids any resampling artefacts.
Choosing an Error Correction Level
| Alternative | Notes |
| L — low, about 7 percent | The least redundancy and therefore the most room for content. Produces the sparsest pattern for a given amount of text, which makes it the easiest to scan at a distance and the most fragile if the code is damaged. |
| M — medium, about 15 percent | The usual default in most generators including this one. A sensible balance for codes displayed on a screen or printed on a clean surface. |
| Q — quartile, about 25 percent | Worth choosing when the code will be printed on a curved or reflective surface, or where a logo is placed in the middle. The redundancy is what allows part of the code to be obscured and still read. |
| H — high, about 30 percent | The maximum resilience, and the right choice for anything that will be handled, folded or exposed to weather. It also reduces capacity the most, so long content at this level produces a noticeably denser pattern. |
How the Code Is Actually Built
A QR code is not a picture of the text. It is a structured encoding with error correction, placement rules and masking, and the page implements the whole specification rather than approximating it. This is why the generated codes scan reliably where a hand-drawn or loosely generated pattern does not.
- Content is first encoded in one of four modes — numeric, alphanumeric, byte or kanji — and the mode chosen affects capacity, since a string of digits needs far less space than the same character count of arbitrary text.
- The data is split into blocks and each block gets Reed-Solomon error correction codewords appended, with the block structure determined by the chosen version and correction level.
- Modules are placed in a fixed pattern that includes three large position markers, alignment patterns whose positions depend on the version, and timing lines.
- One of eight mask patterns is applied to avoid large uniform areas that would confuse a scanner, and a format information sequence with error correction of its own is written alongside.
- Versions 1 through 40 are supported, covering the full range of capacities in the specification, so the generator can scale up to long content rather than failing on it.
Colour Choices That Quietly Break Scanning
The colour pickers make it easy to produce a code that looks good and does not work. The rules behind that are mechanical rather than aesthetic.
- Scanners rely on the dark modules being darker than the light ones. Inverting the colours — a light foreground on a dark background — defeats many readers, because the detection logic is looking for dark marks on a light field.
- Contrast matters more than colour. A mid-grey foreground on white may look like a deliberate design choice and will fail under the camera processing most phones apply.
- Very saturated colours on both the foreground and the background can reduce perceived contrast even when the measured luminance difference seems adequate, particularly on a screen at an angle.
- Keep the quiet zone. The white margin around the code is part of the specification, and a code placed directly against surrounding artwork will often fail to locate.
- If a code must carry branding, put the logo in the centre and raise the error correction level to compensate. The centre is where the redundancy can absorb the loss, and the position markers at three corners must stay clear.
QR Code Questions
Is the content I encode sent anywhere?
No, and this is the main reason to use a local generator rather than a hosted one. The encoding is performed by code inside the page, so nothing is transmitted and the page works with the network disconnected. A QR code generator that calls an API to produce the image receives whatever you encode, which is worth thinking about if the content is a private link or an access credential.
When should I use SVG rather than PNG?
Use SVG when the code will be reproduced at different sizes or printed at large scale. SVG is vector output, so it stays sharp at any dimension and prints crisply on a poster. Use PNG for anything where a single fixed size is fine, particularly on-screen use and quick tests. The file size difference is not significant at these dimensions.
How much text can a QR code hold?
It depends on the mode and the error correction level. Numeric content compresses far more efficiently than arbitrary text, so a long number fits where a long sentence would not. A practical limit for a URL at medium error correction is a few hundred characters, and it is worth remembering that the more you encode, the denser the pattern becomes and the harder it is for a camera to read at a distance.
Do QR codes expire?
The code itself does not — it is a static pattern that encodes whatever you told it to. What expires is the destination. This is the difference between a static code, which encodes the address directly, and a dynamic one, which encodes a redirect the provider controls and can change or switch off. Codes generated here are static, so they will keep working exactly as long as the address inside them does.
Last verified: October 3, 2026
Launch QR Code Generator
All Tools · All Tools · About · How We Test · Contact · Privacy
Maintained by Huang Bin · Last updated October 3, 2026