文章详情
更多工具
从0和1到黑与白:深入剖析二维码的“数据矩阵”组成
二维码,英文名为 Quick Response Code,它本质上是一个把数据进行可视化呈现的过程。在计算机的“眼中”,二维码并非我们所看到的图形,而是一个由 0 和 1 构成的庞大矩阵。深入了解二维码的“数据矩阵”组成,就能明白为何有些二维码看起来稀疏,而有些却密密麻麻。
模块:
它是二维码的最小组成单位。二维码里每一个最小的黑色或者白色方块,都被称作“模块”。其中,深色模块代表二进制中的“1”,浅色模块则代表二进制中的“0”。成百上千个这样的模块依据特定的编码规则排列组合,最终形成了我们所看到的二维码信息。
版本:
它决定了二维码的“容量”。二维码一共有 40 个版本。
- 版本 1 的二维码由 21×21 个模块组成,只能包含最基础的数据量
- 版本 40 的二维码则有 177×177 个模块,能够存储大量的数据
这也就很好地解释了,为什么当你生成二维码的网址很长、数据量很大时,生成的二维码会变得非常密集。这是因为系统自动将其升级到了更高的版本,增加了模块数量,以此来容纳更多的数据。
掩码图案:
它能避免视觉混淆。 不知道你有没有注意到,二维码很少会出现大面积黑色或者大面积白色的区域,这其实也是二维码组成的一部分。在完成数据填充之后,系统会应用一种特殊的图形滤镜,也就是“掩码”,将数据打散,让黑白模块分布得更加均匀。这样做可以防止扫描器在读取二维码时迷失方向,从而提高识别速度。
格式信息与版本信息:
在关键的定位点旁边,还隐藏着两行极其重要的数据,即格式信息。它会告诉扫描器,这个二维码使用了什么颜色的掩码,采用了什么等级的纠错率。一旦这部分组成受损,整个解码过程就会直接报错。

















