有的二维码中间放了图案仍能扫出,有的只被折了一下就失灵。听说二维码能恢复一部分损坏,很容易把它理解成“随便遮住相同比例的面积都没关系”。真正要分开的,是把图片看清楚,与从已经读出的错误数据里恢复内容。
先看出格子,再恢复数据
手机要先从照片中找到二维码,判断方向和格子的排列,再把明暗格子解释成数据。纠错主要帮助处理后面的数据错误。如果照片太糊、格子被缩放变形,或边缘与背景混在一起,前面的读取就可能出问题;这时不能指望纠错替相机补回所有视觉线索。
可以把它想成读一张带检查信息的表格。即使有办法修复少量抄错数字,仍需要知道各行各列在哪里。这个比喻只用来区分两件事:二维码并不是人工表格,实际识别与编码步骤更细,也不能据此计算具体能遮住多少面积。
百分比不是给设计师预留的贴纸区
DENSO WAVE 的说明把纠错比例对应到“码字”,一个码字在这里是八位数据的单位。纠错信息与内容一起编码,用数学关系帮助恢复一部分错误。黑白小格、码字与整张图片的面积不是同一个计量单位,不能直接画一个同百分比的矩形来代替。
同样大小的遮挡,位置不同、涉及的数据分布不同,结果也可能不同。能读出一次,只能说明那张图在当时的设备、距离和光照下成功,不是所有手机都能识别的证明。也不宜凭一个失败样本认定某级纠错完全无用。
白边看似空着,其实有任务
普通 QR 码四周需要留出至少四个码元宽度的空白;码元就是一个小方格。假设格子宽两毫米,那么这里讨论的白边宽度就是八毫米。这个算例只解释比例,实际打印尺寸还应结合距离、设备和清晰度选择。
如果把二维码紧贴文字、裁掉白边,或给图片加上重叠装饰,读取条件就变了。二维码不是只保留黑点就够用的图标。排版时应把它的空白边一起当作组件保存,放大缩小时也要观察方格边缘是否清楚,而不只是看整体轮廓是否像方形。
提高纠错级别之后,还要检查印出来怎样
更高的纠错级别需要更多额外信息。同样的内容可能因此需要更多格子或更大的二维码。如果外框尺寸被固定,更多格子就意味着每个格子更小;因此“把级别拉到最高”并不自动解决远距离、低分辨率或印刷模糊的问题。
一个可操作的顺序是先缩短不必要的内容,保持清楚的黑白对比和完整空白边,再按使用环境选择级别,并用实际展示尺寸试扫。练习可以只编码一段普通文字,比较是否读回原文;无需使用支付码、登录码或包含个人信息的二维码。
记住这三点
- 纠错需要先有可读取的图案,不能替代清晰拍摄和正确排版。
- 纠错比例以码字为单位,不能直接换成任意位置的遮挡面积。
- 空白边、格子尺寸和实际展示环境,应与纠错级别一起检查。
别把例子用过头
- 本文讨论普通 QR 码,不把所有二维码类型的规则混用。
- 一次试扫成功不能证明各种设备和印刷条件下都会成功。
- 提高纠错级别有空间代价,不是无条件更好的设置。
自己试一小步
保持相同内容与尺寸,哪一种改动最容易影响你手边设备读取?
- 准备只包含短句的练习 QR 码,并保留清晰原图。
- 复制成几份,每次只改变一个条件:白边、整体缩小或少量遮挡。
- 保持同一设备、距离和光照,重复试扫,记录能否读回完整短句。
做到这些,就算完成
- 记录图像尺寸和改动位置,避免同时改变多个条件。
- 把观察限定在这组设备和样本,没有写成普遍的遮挡百分比保证。
- 练习不使用需要打开链接或登录的二维码。
查原始资料
想确认一个细节,先看这份资料对应的部分,不必从头读完所有文档。
- 纠错功能 (新标签页)↗
纠错级别、码字定义和提高纠错能力的容量代价。
- 确定二维码范围时的要点 (新标签页)↗
普通 QR 码四周至少四码元空白以及尺寸计算方式。
- 无法读取的情况举例 (新标签页)↗
码元变形、空白边不足和图文重叠会影响读取。
- QR 码的信息量和版本 (新标签页)↗
内容、字符类型与纠错级别共同影响所需格子数量。
找一份资料继续练
先选一项,按下面的范围继续学;不必从头读完整门课程。
二维码参数实验:文字没变,方格为什么变多了? (新标签页)↗
固定文字并关闭 Boost ECC,再比较纠错等级;记录真实参数,不把可纠错量当成任意遮挡面积。
查看学习准备与访问说明 →