QR Code Generator with Logo
Turn text or a URL into a QR code, optionally with a logo in the middle, with adjustable size, error correction and colors, exported as PNG or SVG.
Turning a URL, Wi-Fi details or a block of text into something scannable runs into two familiar problems: content that is too long or contrast that is too low, producing a code no reader can decode; and a free online service that stores the image on its own server with an expiry date, which is a poor fit for an internal link.
The modules are rendered in your browser, so nothing you type is uploaded. Size, error correction level and foreground and background colors are adjustable, a local image can be embedded in the middle as a logo, and the result exports as a PNG bitmap or a vector SVG. Content is encoded as UTF-8, so non-Latin text and symbols are written correctly.
Error correction decides how much damage a code survives
QR codes carry Reed-Solomon error correction, and the four levels recover roughly 7 percent (L), 15 percent (M), 25 percent (Q) and 30 percent (H) of the codewords. The correction data itself occupies space, so a higher level needs more modules for the same content and leaves less usable capacity. The practical default is M for on-screen display and ordinary documents; reach for Q or H when a logo has to go in the middle, or when the code will be printed on a curved, glossy or easily scuffed surface - and scale the code up at the same time, because at a fixed export size the modules shrink and scanning gets harder, not easier.
A center logo costs more than the percentage suggests
Yes, a logo affects scanning, and by more than most people expect. Error correction is distributed across the codewords over the whole symbol, whereas a logo covers one contiguous block, and the two cannot be converted into each other. Even at level H the covered area leans on correction codewords that also have to absorb print defects, glare and a scanner held at an angle, so the headroom is smaller than the 30 percent figure implies. The workable rule is: level H, a logo no wider than 25 percent of the side (about 6 percent of the area), and the remaining margin left for the real world. This tool raises the error correction level to H automatically when a logo is added, says so when the content no longer fits at H, warns when the logo spans too much of the code, and keeps the background color visible around the logo so dark modules do not merge into its edges. Test the export on two or three devices before relying on it; if only one of them reads it, there is no margin left.
Capacity limits and content length
A QR code tops out at version 40, or 177 by 177 modules, and how much fits depends on the encoding mode and the error correction level. In byte mode the limit at level L is about 2953 bytes, and it drops to roughly 2331 bytes at M, 1663 at Q and 1273 at H; numeric content fits far more, around 7089 digits. A CJK character costs 3 bytes in UTF-8, so the usable character count is lower still, and higher correction levels eat further into it. Longer content also means a denser symbol: at a small export size a module can end up barely a pixel wide, which calls for a larger export and a shorter scanning distance.
Colors, contrast and the quiet zone
Scanning depends on the difference in brightness between modules and background, so dark modules on a light background give the most headroom. An inverted code - light modules on a dark background - is unreadable for a lot of scanners. Avoid a transparent background, which turns into an unreadable pattern the moment it sits on a dark page, and avoid bright reds and yellows for the foreground; dark green, navy and near-black hold up better. The quiet zone matters as much: the specification asks for a margin of at least 4 modules on every side, and a code trimmed flush to its edge or overprinted by text is a common reason a scan fails even though the symbol itself is correct.
Frequently asked questions
- Which error correction level should I choose?
- M is the sensible default for screens and short content. Use Q or H when a logo sits in the middle, or when the code goes onto packaging, a curved surface or anything that wears; raise the export size at the same time, since a higher level packs the modules closer and a small code with dense modules is harder to scan, not easier.
- The QR code with a logo will not scan. What should I change?
- Work through three things in order: set error correction to H, shrink the logo to 25 percent of the code width or less (about 6 percent of the area), and export a larger image so every module is bigger. Then test with two or three readers - a phone camera, a scanner app, an older handset. If only one of them succeeds, the margin is gone: shrink the logo further or enlarge the code.
- How much text fits in a QR code?
- It depends on the mode and the error correction level. Version 40 in byte mode holds about 2953 bytes at L, 2331 at M, 1663 at Q and 1273 at H; numeric mode reaches about 7089 digits. A CJK character takes 3 bytes in UTF-8 and correction data takes its share, so expect a few hundred characters rather than thousands, fewer as the level rises.
- Why will the generated code not scan at all?
- The usual four causes are content long enough to make the modules very dense, an export size too small for the symbol, insufficient contrast or an inverted color scheme, and a quiet zone that got cropped or overprinted. If the scanner also guesses the wrong character encoding, non-Latin text shows up as garbage rather than failing outright.
- PNG or SVG - which should I download?
- SVG for print, for scaling up to poster size and for placing in vector documents, because it stays sharp at any size and is usually the smaller file. PNG for web pages, chat apps and the widest compatibility with scanning software. For on-screen use either works; PNG is the safer default.