你有没有想过,当你用手机对准二维码到跳转到网页的半秒钟内,到底发生了什么?这个过程比看起来要快,了解它有助于你每次都能创建出可靠扫描的二维码。.
二维码到底是什么
二维码是由黑白方块以独特模式排列而成的二维矩阵。与传统条形码(以不同宽度的单条水平线编码数据)不同,二维码同时水平和垂直存储信息。这使其具有更大的数据容量,并能从多个方向读取。.
每个二维码都由几个功能区域组成:
- 定位图案 – 位于角落的三个大方块,帮助扫描器定位代码、确定其方向并找到其边缘,即使代码倾斜也能识别
- 校正图案 – 在定位图案之间交替出现的黑白模块,它们定义了网格结构并帮助扫描器正确确定每个模块的大小
- 静区 – 代码周围的空白白色边距,至少四个模块宽,将其与周围图形分开,以便扫描器可以检测其边界
- 格式信息 – 靠近定位图案的专用区域,存储错误纠正级别和掩码模式,以便扫描器准确知道如何解释数据
- 数据模块 – 实际编码内容所在的单个黑白方块,被读取为二进制的“一”(黑色)和“零”(白色)
这些模块中的数据可以以多种模式编码:纯数字、字母数字、8位二进制字节或汉字。版本1的二维码是21×21模块;版本40的二维码扩展到177×177,最多可容纳7,089个数字字符、4,296个字母数字字符或2,953字节的二进制数据。在指南中了解更多关于这些权衡如何运作的信息 二维码数据限制.
扫描过程,一步一步来
当你将摄像头对准二维码时,一个多阶段的过程会在几毫秒内展开。.


步骤 1:图像捕获
摄像头将二维网格捕获为视觉图像。这是原始输入——黑白图案的照片。大多数现代智能手机摄像头无需任何专用扫描应用即可处理此操作。如果您想了解在不同设备上触发扫描的各种方式,请参阅 二维码扫描指南 详细介绍了 iPhone、Android、平板电脑和桌面工作流程。.
步骤 2:图案检测
扫描仪的软件使用模式识别在图像中定位二维码。它会搜索角落中的三个查找图案。一旦找到,扫描仪会确定:
- 代码在帧中的位置
- 它的方向(即使旋转或略微倾斜)
- 代码的边缘在哪里
这一步是二维码即使倾斜也能保持可读性的原因——查找图案为算法提供了足够的几何信息来校正失真。.
步骤 3:网格采样和数据提取
确定代码的位置和方向后,扫描仪读取时序图案和对齐标记以理解网格结构。然后,它以特定的之字形路径(从右到左,然后从上到下)对每个模块进行采样,从已知位置开始,遍历每个数据模块,直到到达结束指示符。.
当它遍历此路径时,扫描仪会读取:
- 一种 模式指示符 (四个模块)指定编码类型——数字、字母数字、字节或汉字
- 一种 字符计数指示符 说明编码了多少个字符
- 剩余的 数据码字 直到数据流结束
步骤4:错误纠正
读取数据模块后,扫描仪处理错误纠正码字。QR码使用 里德-所罗门错误纠正, ,它嵌入冗余数据,即使代码的一部分物理损坏或模糊,也能重建原始内容。.
有四种标准化的错误纠正级别:
| 级别 | 恢复能力 | 最佳用途 |
|---|---|---|
| L(低) | ~7% | 干净的室内环境 |
| M(中型) | ~15% | 一般营销材料 |
| Q(四分位数) | ~25% | 工业或户外使用 |
| H(高) | ~30% | 带有标志的代码,恶劣条件 |
更高的错误纠正意味着代码可以承受更多的损坏,但也需要更多的模块,使整体符号更密集。如果您要为QR码添加标志或将其放置在暴露于天气的地方,选择H级别是正确的。要更深入地了解这种权衡在实践中如何体现,请参阅关于 可编辑二维码中的纠错工作原理.
步骤5:解码为人类可读内容
一旦数据位被重构,扫描仪会根据二维码的编码模式解码二进制序列。黑色方块变成一,白色方块变成零。然后,该二进制字符串被转换为人类可读的内容——一个URL、一个电话号码、一段文本、联系信息,或代码最初旨在承载的任何其他数据类型。.
如果代码包含URL,您的设备会显示一个打开它的提示。那一刻,扫描过程就交接给了您的浏览器或应用程序。.
试试Pageloot的免费二维码扫描仪 需要直接从图像或网络摄像头解码二维码? Pageloot 二维码扫描仪 适用于任何现代浏览器——无需下载应用程序。.
二维码扫描仪与条形码扫描仪有何不同
底层物理原理相似:两种类型的扫描仪都照亮一个图案,检测反射光,并解码结果。但标准的激光条形码扫描仪以单条水平线读取,这就是它只能处理一维条形码的原因。读取二维二维码需要一个基于图像的传感器,一次性捕获整个图案。.
要直接比较这两种格式在功能和用例上的差异,请参 条形码扫描仪解释器 详细介绍了照明系统、传感器和解码器组件——以及 条形码与二维码比较 详细分析了哪种格式更适合不同的商业应用。.
什么让二维码易于(或难以)扫描
了解扫描过程可以揭示为什么某些设计选择会损害可读性:
- 对比度太低 – 扫描仪通过黑白区域之间光反射的差异来区分模块;在浅色背景上打印的灰色代码无法通过此测试
- 缺少静区 – 如果没有清晰的白色边距,扫描仪无法可靠地定位代码边缘,尤其是在周围文本或图形很近的情况下
- 对于观看距离来说太小 – 适用10:1规则:扫描距离每10厘米,代码宽度应至少为1厘米;近距离打印使用的实际最小尺寸为2×2厘米
- 反色或非常规颜色 – 深色背景上的浅色模块可能会混淆某些扫描仪的模式识别
- 模糊或像素化输出 – 低分辨率栅格图像在打印尺寸下会变得模糊;SVG或EPS等矢量格式在任何尺寸下都能保持清晰
有关尺寸、对比度、放置和测试的全面指南,请参阅文章 二维码可读性最佳实践 涵盖了每个因素并提供了具体建议。.


创建可扫描的代码 的 Pageloot 二维码生成器 允许您根据特定用例构建、自定义和测试具有正确纠错、对比度和格式的二维码——动态代码在打印后无需生成新图像即可更新。.
静态与动态二维码:扫描仪所见
从扫描仪的角度来看,每个二维码看起来都一样:一个编码数据字符串的模块矩阵。静态代码和动态代码的区别在于数据内容。.
一种 静态二维码 直接编码最终目的地——完整的URL、文本或联系信息在创建时就嵌入到模块中。更改内容意味着生成新代码。.
一种 动态二维码 编码一个指向服务器的短重定向URL。扫描时,该重定向会将用户转发到代码所有者当前设置的任何目的地。这意味着物理代码永不改变,但其行为可以即时更新。动态代码还支持扫描跟踪——每次扫描都会记录一个数据点,显示代码何时何地被扫描、在什么设备上以及扫描频率。.
如果二维码活动需要可衡量或链接内容可能更改,动态代码是实用的选择。对于比较各种扫描仪应用程序选项以及在扫描工具中寻找什么的商家,请参阅 二维码扫描应用比较 涵盖主要选项。.
常见问题
不。大多数运行 iOS 11 或更高版本的智能手机和现代安卓设备可以直接通过原生相机应用扫描二维码。为了获得更多控制 – 例如从保存的图像中扫描或查看扫描历史记录 – 像 Pageloot 二维码扫描器这样的专用工具可以在任何浏览器中运行,无需安装。.
最常见的原因是对比度低、缺少静区、二维码对于观看距离来说太小,或者图像太模糊以至于无法识别模块。带有低分辨率摄像头的旧设备对这些问题更敏感。在打印前在多个设备上进行测试,并使用更高的纠错级别(Q或H),可以减少失败的可能性。请参阅二维码无法工作指南中原因和修复方法的完整列表。.
版本40的QR码在最低纠错级别下,最多可编码7,089个数字字符、4,296个字母数字字符或2,953字节的二进制数据。实际上,更短的URL和更简单的内容会生成密度较低的二维码,这些二维码扫描速度更快,也更可靠。版本、容量和纠错权衡的完整细分在《QR码数据限制指南》中有所介绍。.























