它不是一张需要被“看懂”的图片,而是一套写给机器阅读的信息系统。
传统条形码主要沿一个方向编码。制造业需要更多容量、更快读取,还希望把日文汉字和假名放进同一个代码。
左上、右上、左下的三个 Position Detection Patterns,首先告诉摄像头:二维码在这里。
三个定位方框形成几何参照,让扫描器计算位置、尺寸、旋转角度和哪一边是“上”。
二维码的最小单位不是“像素”,而是一个个 module:固定结构、数据、纠错信息,共同组成可解码的黑白网格。
需要多少格子,同时取决于数据量、数据类型和纠错等级。同一信息也可能因为内部编码模式不同,生成不同图案。
折皱、油污、刮伤、反光都可能破坏图案。冗余信息让读取器有机会从残余数据中恢复原始内容。
不是“猜”出了消失的数据,而是提前把恢复所需的数学关系一起保存进去。
中央并不是“没有数据”。Logo 实际上遮住了部分有效信息,纠错机制把它当成损坏来处理。
二维码四周至少需要 4 modules 宽的空白,让扫描器分辨哪里结束、哪里只是旁边的文字和边框。
按 → 或空格逐步点亮读取过程。
纠错能判断数据是否损坏,却不能判断二维码背后的人是否值得相信。
三个大方框负责定位,校正结构负责方向,module 负责数据,Reed–Solomon 负责恢复,Quiet Zone 负责边界。