QR码纠错:为什么损坏的二维码依然能扫
QR码如何抵御划痕、Logo和污渍。L、M、Q、H纠错级别深度解析。
你见过公司Logo直接贴在正中间的QR码。代码的一部分被实实在在地遮住了。然而扫一下,完美运行。
这不是运气。这是纠错在发挥作用。
QR码如何处理损坏
QR码使用里德-所罗门纠错,和CD、DVD以及深空通信用的是同一套数学。核心思路:存储额外的冗余数据,这样即使部分缺失或损坏,也能重建原始信息。
生成QR码时,数据会和纠错码字一起编码。这些码字包含足够的信息,即使代码的一部分无法读取,也能恢复原始数据。
四个纠错级别
每个QR码使用四个纠错级别之一:
| 级别 | 恢复能力 | 最适合 | |------|---------|--------| | L(低) | 约7%损坏 | 数字屏幕、干净环境 | | M(中) | 约15%损坏 | 通用,默认选择 | | Q(四分位) | 约25%损坏 | 印刷品、中等磨损 | | H(高) | 约30%损坏 | 恶劣环境、叠加Logo |
这里的"损坏"是指在二维码仍能成功扫描的情况下,不可读码字的百分比。
权衡:纠错 vs 尺寸
更多纠错意味着更多冗余数据。更多数据意味着更复杂(更大)的QR码。实际效果:
对于相同内容,H级纠错的QR码会比L级明显多出更多模块(那些小方块)。代码变得更密集,远距离扫描更困难。
L级: 最小最简单的QR码。最容易远距离扫描。保护最少。
M级: 良好平衡。大多数生成器的默认值。应对日常磨损。
Q级: 明显更密集。适合可能被折叠、弄脏或部分覆盖的印刷品。
H级: 最大密度。能承受严重损坏。如果要在中间放Logo则必须使用。
为什么QR码中的Logo能正常工作
在QR码中央放置Logo时,你实际上是在"损坏"代码——让那些模块变得不可读。纠错算法将Logo视为损坏的数据,从剩余模块中重建缺失的信息。
这只有在H级(有时Q级)纠错下才能可靠工作。在L级,遮住仅8%的代码就可能导致无法扫描。
Logo放置指南:
- 使用H级纠错
- Logo控制在QR码面积的约15-20%
- Logo居中放置(QR码角落有重要的定位图案)
- 使用简洁、高对比度的Logo
- 务必用多个扫描器测试最终二维码
该用哪个级别?
数字显示屏(网站、应用、屏幕): L或M级。代码不会受到物理损坏,较小的码更容易扫描。
名片和传单: M级。对轻微磨损的标准保护。
产品包装: Q级。产品会被拿取、刮擦、暴露在外部环境中。
户外标牌和恶劣环境: H级。对天气、污垢和物理损坏的最大抵抗力。
带Logo的QR码: H级。毫无疑问。需要额外冗余来补偿被覆盖的区域。
静区也很重要
纠错处理的是代码本身的损坏,但QR码还需要"静区"——代码周围的空白边距。没有它,扫描器无法找到代码的起止位置。
标准要求4个模块宽的静区。省略它是QR码失败最常见的原因,再多的纠错也无法修复这个问题。
纠错是让QR码在现实世界中实用的关键。根据使用场景选择合适的级别——大多数情况用M级,需要Logo或最大耐用性时用H级——印刷前务必用真实扫描器测试。