为什么中间放了 logo 的二维码依然能扫
2026-06-26
你见过正中央坐着一个公司 logo 的二维码,也许纳闷过:遮住一部分码怎么没把它弄坏。答案是烘焙进这个格式里的一项确实巧妙的工程设计:纠错。下面说说它的原理,以及如何做一个能可靠扫描的品牌二维码。
二维码天生就能扛损坏
二维码不只是存下你的链接——它是带冗余地存下的,用的是 Reed–Solomon 纠错。思路是:编码额外的数据,这样即使一部分码缺失、脏了或被遮住,扫描器也能重建出信息。这就是为什么一张皱巴巴的收据上、或一枚被刮花的贴纸上的二维码依然能用。
纠错分为四个等级:
- L(Low,低)——可恢复约 7% 的码
- M(Medium,中)——约 15%
- Q(Quartile,四分之一)——约 25%
- H(High,高)——约 30%
在 H 等级下,大约三分之一的码被遮住,扫描器仍然能读出来。中央 logo 就活在这块余量里。
为什么 logo 放在中间
logo 放在正中央有两个原因。第一,四角里那三个大方块是定位图案(finder patterns)——扫描器靠它们来定位和摆正整个码,所以那几处必须保持干净。中央没有这个任务,所以是可以遮盖的安全区。第二,把被遮的区域保持得紧凑且居中,能让其他各处的纠错留有足够完整的数据来重建信息。
logo 能有多大?
经验法则是:把 logo 控制在码面积的 20–25% 以内,并使用纠错等级 H。再大就会吃穿约 30% 的预算,在较差的摄像头或光线不足时就开始扫不出来了。加一点内边距——logo 后面垫一块纯色底——也能帮扫描器把 logo 和码区分开。
在浏览器里做一个
ToolKoala 的二维码生成器帮你把这些都处理好:
- 输入你的链接或文字。
- 添加一个 logo——它会被放在中央、垫上一块干净的底、按尺寸控制在安全区内,并且码以高纠错生成,这样依然能扫。
- 想要的话选个颜色,然后下载为 PNG(或不带 logo 的 SVG,用于印刷)。
全程在本地运行——码是在你的浏览器里生成的,所以你编码的任何内容都不会碰到服务器。
实用小贴士
- 成品码一定要先测。 在印 500 张传单之前,用几部不同的手机扫一扫。摄像头质量参差不齐。
- 保持良好对比度——浅底深码最好扫。花哨的低对比配色,正是"时髦"二维码悄悄失灵的地方。
- 印刷时别缩得太小。 数据越多(比如一个很长的 URL),码就越密,需要更大的物理尺寸才能可靠扫描。短链接能做出更简单、更结实的码。
常见问题
为什么二维码被 logo 遮住一部分还能用? 二维码内置了 Reed–Solomon 纠错,会存储冗余数据,这样即使一部分码被遮住也能重建出信息。在最高等级下,大约 30% 可以被遮盖,这就给中央 logo 留出了空间。
logo 能有多大? 把它控制在码面积的 20–25% 以内,并使用高(H)纠错。更大的 logo 会开始超出可恢复的范围,扫描就变得不可靠。
logo 应该放在哪里? 放在正中央。四角那三个方块是扫描器定位码所需的定位图案,所以那几处必须保持干净——中间才是可以遮盖的安全位置。
在线做二维码会泄露我的链接吗? 在 ToolKoala 上不会——码完全在你的浏览器里生成,所以你编码的任何内容都不会离开你的设备。
我该下载 PNG 还是 SVG? 屏幕显示和方便分享用 PNG(而且它会保留 logo)。印刷最好用 SVG,因为它缩放不糊;SVG 导出的是不带内嵌 logo 的干净码。
— Milo 🐨