图案是如何隐藏信息的 - 解密 0 和 1 的秘密
所有信息都由 0 和 1 组成
在数字世界中,文字、数字、图像都用 0 和 1 的组合表示(二进制)。字母 A 是 01000001,B 是 01000010。8 位(8 比特)表示一个字符。黑白图案就是将二进制可视化:白格 = 0,黑格 = 1。手机摄像头读取颜色,转换为二进制,还原出文字或网址。
中文字符如何存储
英文每个字符用 8 比特,但中文在 UTF-8 编码中每个字符需要 3 字节(24 比特)。同样 5 个字符,中文需要 15 字节而英文只需 5 字节。这就是为什么编码中文的图案更大。网址只用 ASCII 字符,能保持图案紧凑。
图案内部的「地图」
图案遵循严格规则。三个角落的大方块(定位图案)标记边界。小点行(定时图案)确定网格间距。数据区域的前几个格子记录数据类型(数字、字母、汉字、二进制)和长度。
掩码图案 - 最后的优化
原始数据转换可能产生大块黑色或条纹区域,降低扫描精度。8 种掩码图案可用,每种应用不同的反转规则。系统自动选择分布最均匀的图案。
同样的信息图案却不同的原因
即便制作表示相同内容的码,因设置不同,图案也可能看起来不一样。这是因为,码不仅持有信息的本体,还一并持有用于解读它的线索,以及为污损做准备的预备数据。改变纠错的强度,预备数据的量便会改变,图案也随之变化。此外,在整理易读性的收尾工序中,外观也会被重新选择。也就是说,图案并非把内容信息原样映出,而是作为为确实读取而层层叠加的巧思的结果,呈现出那副样貌。
对人复杂对机器却简单
密密麻麻排列的单元格,在人眼中映为极其复杂的图案。然而,对读取的机器而言,不过是明亮还是暗这一简单判断的累积。按既定顺序追溯单元格,把明暗置换为 0 与 1,再把其排列组装成信息。这项作业,机器一瞬间便能准确完成。与人看了便理解的文字相比,信息的表示方式截然不同。看似复杂的图案背后,隐藏着为让机器毫不迟疑地解读而被彻底简化的规则。
试试看 - 把你的名字转换成二进制
用 ASCII 码将名字转换为二进制:T=01010100,A=01000001。将它们串联起来,你的名字就变成了一串 0 和 1。将每个数字替换为白格或黑格,名字就变成了图案。实际图案还会添加纠错和结构数据,但核心原理就是这么简单。