Three reasons scans fail
One, too small: a code under about 2 cm on screen forces people to lean in and refocus repeatedly, and under 1.5 cm in print it is mostly luck. Two, not enough contrast: placing a code over a photo or gradient, or recolouring black and white into pale grey and beige, sharply reduces readability. Three, a cropped quiet zone: a code needs a clear margin around it (typically four modules wide), so trimming to the edge or adding decorative borders disables the finder patterns. After generating, scan it yourself with two different phone brands — more reliable than any parameter.
Choosing the error-correction level
QR codes offer four levels: L recovers about 7%, M about 15%, Q about 25% and H about 30% — the share of the code that can be covered or damaged while remaining readable. Higher correction means more modules for the same content, so the code becomes denser. In practice: M for an ordinary link; Q or H when you place a logo; Q for print or anything that may wear (stickers, packaging); H when embedding a larger icon or printing very small. Conversely, with long content do not reach for H blindly — the extra density can make scanning harder rather than easier.
Size and quiet zone
Size depends on how many pixels each module gets. Rules of thumb: on screen, at least 200 px per side and never smaller than 2 cm as displayed; in print, work from the finished size, keep the side at least 1.5–2 cm and give every module at least 0.4 mm, or ink dots merge. Export PNG (lossless), never JPEG; for a larger print run, regenerate at a bigger size instead of scaling a bitmap, because scaling blurs module edges and readability collapses. Finally, confirm the quiet zone was not cropped away.
How large a logo can be
A logo covers data, so error correction has to absorb it: keep the logo under roughly 20–25% of the code area and set the level to H (about 30%); if the logo must be larger than 25%, use at least Q and increase the overall code size. Centre it, and never overlap the three finder patterns in the corners — they are what scanners look for first. A thin white outline around the logo keeps the covered boundary crisp and improves reliability. And after placing it, test with a real scan rather than trusting the preview.
Print versus screen
On screen: mind background brightness and glare, and keep contrast sufficient in dark mode (a light background with a dark code remains the safest choice); avoid lossy compression when uploading, or edges will pick up noise. In print: use vector or high-resolution bitmaps, leave generous margins, and avoid glossy laminates. On curved surfaces such as bottles, narrow the code and add height, or use several smaller codes. For glass or metal, consider a matte finish to prevent reflections.
Content and context
Longer content means denser modules: a short link (about 25 characters) and 300 characters of text produce completely different codes, with scanning distance differing several times over. So shorten links or use short paths, and put one code on a poster rather than five crowded together. Beyond URLs, the common payloads are plain text, WiFi credentials (SSID and password) and contact cards (vCard/MeCard) — the last two save customers from typing anything. Note that a static code has its content baked into the pattern, so changing it means regenerating; so-called "dynamic" codes work through a server redirect and depend on that service staying alive — for long-lived physical materials, static is safer.
想马上动手:在 二维码生成器 里选容错率、填内容并下载 PNG;如果要给码加上品牌 logo,可以用 Logo 制作器 做图标再合成,最后用 图片压缩 控制体积(注意别压过头)。Try it now: choose an error-correction level and download a PNG from the QR code generator; design a mark with the logo maker, and keep the file small with the image compressor — without over-compressing.
FAQ
Do generated QR codes expire?
Static ones do not: the content is encoded in the pattern and works as long as it can be scanned. The link it points to may expire though, so use your own domain and keep it alive for long-lived materials.
Does a white code on black scan?
Most scanners do read inverted codes, but the success rate and scanning distance are worse than light-background ones, and some older devices refuse entirely. Unless the design demands it, keep a light background with a dark code.
How much content can I encode?
Technically over a thousand characters, but every addition makes the modules denser and harder to scan. In practice keep URLs under about 100 characters and turn long text into a short link or several codes.