首页 技术原理解析内容详情

二维码的容错率是怎么回事?H 级 30% 被遮还能扫的原理

2026-11-03 9

二维码的容错率是怎么回事?H 级 30% 被遮还能扫的原理

周五晚上九点,5000 张宣传单刚下印厂,运营在群里甩了句“二维码扫不出来”。你放大一看——logo 盖了半个码心,容错率还选的 L。

这场面我见过三次,次次都是事故。

核心要点

  • 二维码有 L/M/Q/H 四档容错,H 级理论允许约 30% 码字损坏
  • 底层靠里德-所罗门纠错码,纯数学冗余,不是玄学
  • 三个定位角 + 四周白边(静区)不受容错保护,遮了照样死
  • 长 URL 码点变密 = 版本号升高,容错和密度在抢同一块地盘
  • 加 logo 必须开 H,且 logo 面积压在 20% 以内,别赌运气
  • 扫码失败的真实元凶排序:静区被裁 > 对比度不够 > 尺寸太小 > logo 盖太多 > 码点太密

一、三个定位角:扫码器靠它们“找到你”

定位图案:三个角上那个“回”字(黑框套白圈套黑点),扫码器先找到它们,才能确定这张图里有个码、码的方向在哪。

为什么是三个不是四个?三个点就能唯一锁定一个平面的旋转和位置,第四个角放的是小一号的校正图形,专门负责把拍歪、拍弯的码“拉直”。

说人话:定位角被遮住一个,扫码器连“这是个二维码”都判断不出来,跟你容错率开 H 还是开 L 没有半毛钱关系。

静区:码四周那圈白边,规范要求至少 4 个模块宽。印厂排版时“贴心”地帮你裁掉白边,是新手翻车的重灾区。

二、版本号:为什么长 URL 的码点密得发麻

版本号:从 1 到 40,对应 21×21 到 177×177 个模块,每升一级边长加 4。

数据越多,版本越高,模块越密。你往码里塞一个带三层 UTM 参数的长链接,版本从 3 直接飙到 8,同样大小的图里模块小了一半,打印稍微糊一点就扫不动。

有没有办法让码点别那么密?有,长链先过一遍短链服务,或者生成时砍掉垃圾参数。零成本的优化,一堆人懒得做。

还有个反直觉的硬伤:容错率开得越高,同样数据需要的版本也越高,码反而更密。容错和密度,本质上在抢同一块地盘。

三、容错率:H 级 30% 被遮还能扫,靠的是数学

里德-所罗门纠错码:数据写进码之前,算法先生成一坨冗余纠错码字附在后面,损坏的部分靠这些冗余反推回来。

四个档位说人话就是:L 能救约 7%,M 约 15%,Q 约 25%,H 约 30%。CD、深空通信用的同一套数学,不是二维码的专利。

注意一个坑:30% 指的是码字(数据块)级别的 30%,不是面积的 30%。logo 压在一块连续数据区上,实际受损可能比面积看起来更集中。

那为什么 H 级码心盖个 logo 还能扫?因为数据和纠错码字是交织分布的,局部损毁被摊到多个纠错块里,每块都没超过恢复上限,整码就能重建出来。

四、加 logo 为什么必须开 H

加 logo 的本质,是主动制造一次 30% 以内的“可控损毁”——你必须让纠错余量罩得住它。

L 级只有 7% 余量,logo 一压直接超限,扫码全凭缘分。我见过被坑惨的案例:设计师嫌 logo 小了没气势,硬放大到 1/3 面积,H 级都救不回来。

实操红线三条:logo 面积控制在整码 20% 以内;logo 底下垫纯色块,别直接压在码点纹理上;发印厂前用三台不同手机实测。

为什么留 20% 而不是贴着 30% 做?理论极限是给信道噪声留的,不是给你的审美留的,别赌运气。

五、扫码失败的真实原因排序(按踩坑频率)

1. 静区被裁:白边没了,扫码器找不到边界,直接装死。

2. 对比度不足:浅灰码压深色底,或者搞反色码,老设备翻车率极高。

3. 印刷尺寸太小:码点密 + 印得小 + 扫描距离远,三条件凑齐必挂。

4. logo 盖太多:容错没开 H,或者 logo 超了 20%。

5. 码点过密:长 URL 没缩短,版本飙高,打印分辨率跟不上。

第一嫌疑犯是谁?多半是排版和配色,不是容错率。容错率被骂得最凶,实际只排第四。

生成环节就别省事了,直接用在线的二维码生成器把容错率锁在 H、链接缩好、logo 比例盯死,比印废 5000 张海报再返工便宜太多。

FAQ / 常见问题

Q1:容错率开 H 是不是万能保险?

不是。定位角和静区不在纠错保护范围内,遮角、裁白边,H 级照样扫不出来。

Q2:logo 放角落是不是更安全?

恰恰相反。三个角是定位图案的地盘,旁边还压着格式信息,才是最不能碰的位置,码心反而相对最安全。

Q3:深色背景上放白码行不行?

部分新扫码器认反色码,但低端扫码枪和老设备大量翻车。商用印刷别赌这个,老老实实深码浅底。

  • 评论列表 (0条)

 暂无评论,快来抢沙发吧~

发布评论