二维码(QR code)中间完全可以放一个 Logo,而且不会影响扫码。这要归功于二维码自带的纠错机制:它的设计初衷就是重建被遮挡、污损或破损的图案,而一个小小的 Logo,在扫码器眼里就属于"被遮挡"。只要把 Logo 做得小而居中、垫在干净的背景上、使用高纠错等级,并避开三个角落的方块,加 Logo 的二维码就能稳定工作。
为什么加 Logo 不会破坏二维码
二维码承载的不只是数据本身。那些黑白模块的排布中,还包含数据的多份冗余副本——由算法生成、散布在整个符号之中。扫码器读取时,并不只是解码眼前看到的内容,它还会发现"哪里缺了",然后把缺失的部分重建出来。
这套修复能力分为四档,称为纠错等级:L、M、Q、H。大致来说,它们分别能重建整个符号的约 7%、15%、25% 和 30%。这些数字来自 QR 规范本身,各类生成工具则把它们变成了设置菜单里的选项。
当你把 Logo 盖在二维码中央时,扫码器会把被盖住的区域当作损伤来处理。只要损伤范围在可恢复限度之内,扫码器就能重建被遮住的数据,得到和完好二维码一样的结果。这就是带品牌的二维码能够成立的原因:Logo 占用的,正是纠错机制本来就预留出来"可以牺牲"的空间。
选高纠错等级——并了解代价
如果打算加 Logo,请在生成二维码之前就把纠错等级设为 H。H 级能恢复约 30% 的符号,给 Logo 加上真实使用中的磨损——划痕、反光、折角的传单、沾了指纹的屏幕膜——都留出了充足的余量。
代价是密度。冗余数据要占地方,同一个链接用 H 级编码,所需的模块数量比 L 级或 M 级更多。同样大的物理尺寸里塞进更多模块,每个方块就更小,而更小的方块对相机来说更难分辨——尤其在远距离、光线昏暗或手机较旧的情况下。一个 M 级下秒扫的二维码,印小了换成 H 级就可能变得迟钝。
两个习惯可以控制密度。第一,编码尽可能短的链接:带一堆追踪参数的长网址会把图案撑大,短链接则给冗余留出空间,不会挤占模块。第二,永远不加 Logo 的二维码不必用 H 级——那是为用不到的保护白白付出密度代价。
Logo 可以多大?
把 Logo 的宽度控制在二维码总宽度的五分之一左右或更小。把它当作经验法则而非硬性规定:并没有一个官方数字,但保持在 20% 以下,是带品牌二维码能留出从容安全余量的区间。
这条规则背后的数学其实很友好。居中放置、宽度为五分之一的 Logo,只占整个符号面积的很小一部分,因为二维码是二维的。H 级的恢复能力因此还有大量富余。
问题出在 Logo 变大之后。达到三分之一宽度时,被遮挡的面积加上普通的印刷损伤,可能把二维码推向纠错能力的极限,扫码会最先在最弱的相机上失败——而那些设备恰恰是你自己测不到的。如果想让 Logo 更醒目,更好的做法是生成一个更大的二维码、让 Logo 保持相对较小,而不是在小二维码上放大 Logo。
Logo 要居中放置。二维码中部是最安全的位置,因为角落和边缘承载着完全没有纠错保护的结构图案——这正是下一节的主题。
Logo 背后要留出干净的背景
Logo 下方及其周围的区域,在扫码器眼里应该是一块完整、干净的空白。大多数自己动手加 Logo 的二维码,恰恰是在这里出的问题。
常见的错误是把透明背景的 PNG 直接叠上去。深色模块会从 Logo 的镂空处透出来,扫码器读到的是一堆半遮半掩的方块——既不是干净的深色,也不是干净的浅色,模棱两可。这种随机噪声比一整块空白更难纠正,因为修复机制在能清楚识别"缺了什么"时才最有效。
解决办法很简单。使用不透明的 Logo,或者把 Logo 放在一块纯白或浅色的底上——圆角方块就很好用——把下方的模块完全盖住。这样扫码器看到的是一个规整的空白矩形,正是纠错机制最容易处理的那种"损伤"。
顺手也保护一下二维码其余部分的清晰度。模块应是浅色背景上的深色,保持强对比,不要为了配合品牌色而褪成淡彩色。同时保持静区——围绕整个二维码的那圈空白边距——干净无物,不要放文字、边框或图形,因为扫码器要靠这片边距来框定符号范围。
永远不要遮挡定位图案
随便看一个二维码,你会发现三个大的方形标记:左上、右上、左下。它们是定位图案(finder patterns)。扫码器首先要找到它们;它们告诉相机二维码在哪里、方向如何、网格多大。
定位图案是结构,不是数据。纠错机制不会为它们做备份,因为一旦没有它们,扫码器根本不会把这个图形识别为二维码。哪怕只盖住一个定位图案的一部分,大多数相机就干脆认不出这是一个码——其余设计再克制也没用。同样不能动的,还有沿顶部和左侧边缘、在定位图案之间延伸的那条深浅交替的细线——时序图案(timing pattern)。
这就是 Logo 应该居中的原因,也是你该抵制某些设计潮流的原因——把定位图案缩小成装饰性的"眼睛",或把它们融进 Logo。它们也许好看,但等于拆掉了二维码的把手,任何纠错等级都找不回来。三个角落的方块,请让生成器画成什么样就保持什么样。
发布前在多部手机上测试
一个只在你自己手机上能扫的 Logo 二维码,说明不了什么。相机素质、扫码软件、屏幕亮度差异很大,而最先出问题的往往是高密度码——高纠错等级恰恰会产出这种码。
印刷或发布之前先测试。至少用三四部手机扫码,最好包括一部较旧或入门级机型,两大主流系统都要覆盖。按最终物理尺寸打一份样张,扫纸面而不只是扫屏幕;全屏显示时没问题的码,印成小贴纸就可能失败。真实场景也要试:海报按一臂距离扫,餐厅菜单在昏暗灯光下扫,再按人们实际的习惯——随手一瞥、斜着角度——快速扫一次。
然后核对结果,而不只是听那声"滴"。确认扫码器打开的是你想要的目标地址。如果有任何一部手机迟疑、要扫好几次或干脆失败,就缩小 Logo、加强对比度,或者用更大的尺寸重新生成——QRCodeMax.Vip 这类免费生成器让你几秒钟内就能调整纠错等级和 Logo——然后重新走一遍测试。每轮只要几分钟,却可能省下一次昂贵的重印。
结语
核心要点:纠错机制是 Logo 得以存在的前提,所以要顺着它工作,而不是绕开它。使用 H 级纠错,让 Logo 居中、不超过码宽的五分之一左右、垫在干净的浅色底上,三个定位图案原样保留,最后在几部真实手机上按最终尺寸测试。做到这些,带品牌的二维码就能和普通二维码一样可靠地被扫出。