QR Generator
Build a QR code with selectable error correction, colours, module shapes, a centre logo and a compliant quiet zone.
QR Generator workspace
Settings
Finder squares always stay square so scanners can lock on.
Choose a PNG or JPEG logo
Preview
Shown at full export resolution.
Processed entirely in this browser — nothing is uploaded.
Using QR Generator
Type the URL or text to encode; the code redraws as you type.
Pick foreground and background colours and watch for the contrast and inversion warnings.
Choose an error correction level, a module shape and an output size in pixels.
Optionally add a centre logo, raising error correction to Q or H first.
Download as PNG, or as SVG for anything that will be printed.
The matrix is generated at the error-correction level you choose and painted with the four-module quiet zone the specification requires, in both the PNG and the SVG. Contrast and inversion are checked against the colours you pick, so a code that will not scan is flagged before you download it.
QR Codes That Survive Contact With a Scanner
A QR code either reads or it doesn't, and when it doesn't, the scanning software is rarely to blame. Usually it's the margin, the contrast, the physical size, or a logo that covered more of the symbol than the code could spare. The controls on this page deal with each of those.
Error correction is a budget
ISO/IEC 18004 defines four levels, L, M, Q and H, which recover roughly 7, 15, 25 and 30 percent of a damaged symbol through Reed-Solomon blocks. You pay for that redundancy in modules. The same URL makes a denser grid at H than at L, and a denser grid needs more physical room to stay readable.
M is the default and suits most screen and print work. Move up to Q or H when the code will be printed on something that gets handled, weathered or covered. Until this rebuild the selector did nothing and every code came out at H whatever you picked. It now does what the label says.
Four modules of nothing
The blank margin around a QR code is part of the specification. Scanners use it to find the edge of the symbol. The standard asks for four modules of clear space on all four sides, and this generator used to put out two. That's a common reason a code reads from a phone held close and fails from a metre away.
The full four modules are now built into both the PNG and the SVG, so you can't lose them when you drop the file into a layout. Don't crop them off afterwards, and don't put a code straight over a busy photograph without a solid panel behind it.
Contrast, and which way round
Scanners are built to expect dark modules on a light background. The tool calculates the contrast ratio between your two colours as you pick them. Below 3:1 you'll get a warning that the code won't scan. If the foreground is lighter than the background, it tells you the code is inverted, because a lot of scanners refuse negative symbols. Aim for 7:1 or better. Pale brand colours on white are the most common reason a code works on the designer's screen and nowhere else.
Module shape and size
You can choose classic squares, small dots or larger circles. The three finder patterns in the corners stay square whichever you pick, since scanners lock onto those first and rounding them reliably breaks a code. Dots shrink each module slightly, which reduces the dark area and can hurt at small print sizes, so if the code is going out small, stick with squares. Despite what the previous description implied, there are no rounded-corner modules here.
Output size sets the pixel dimensions, and the hint under the slider shows how many pixels each module gets. Two pixels per module is the minimum for screen use. For print, work backwards from physical size. A code needs to be roughly a tenth of its scanning distance in width, so a poster read from two metres wants a symbol of about 20 cm. Export the SVG for anything printed, since it scales without going soft.
The logo in the middle
An uploaded logo goes over the centre at 18 percent of the code's width, on a small background pad. To the decoder, every module underneath it is damage, and that damage comes out of the error-correction budget. That's why the interface asks you to move to level Q or H as soon as you load a logo. Test the finished code with two different phones before you send it to print.
The content is just text
There are no Wi-Fi or contact-card presets. You type what the code should contain and the scanning device decides what to do with it. A https:// address opens, a mailto: or tel: string is picked up by the phone's own handlers, and anything else is shown as plain text. Longer content means a bigger matrix, so shorten links before you encode them. For linear retail and logistics symbols, Barcode Generator is the neighbouring page.
Frequently asked
Which error correction level should I choose?
M suits most screen and print work. Move to Q or H when the code will be handled, weathered or partly covered, remembering that higher levels produce a denser grid that needs more physical space.
Why does the code have such a wide white border?
ISO/IEC 18004 requires four modules of clear space on every side so scanners can find the symbol. This generator used to emit two, which is a common cause of codes that read close up and fail from a distance.
Can I use my brand colours?
Within limits. The contrast ratio between your two colours is measured as you pick them, and you are warned below 3:1 or when the foreground is lighter than the background, since many scanners refuse inverted codes.
Does adding a centre logo break the code?
It can. The logo covers real modules, and that damage is paid for out of the error-correction budget, which is why the interface asks you to move to level Q or H. Test the result on two different phones before printing.