二维码的历史与技术细节

历史背景

从超市说起 -> 条形码 -> 二维码
原昌宏

如何创建二维码

定位图案

数据码

1
2
3
4
数字编码(Numeric Mode): 只支持数字 0~9 的编码
字符编码(Alphanumeric Mode):支持包含数字、大写的A-Z(不包含小写)、以及$ % * + – . / :和空格
字节编码(Byte Mode): 支持0x00~0xFF内所有的字符
日文编码(Kanji Mode): 只能支持0x8140~0x9FFC、0xE040~0xEBBF的字符,可以在这里找到

123456789
(123)(456)(789)
01010101010 010101100 100100101 11010100
数据码+补齐码 236 17

纠错码

解一道数学题:已知 d1 d2 d3 y1 y2, 新增一个数,保证丢失一个数之后这个数可以被恢复

d1 + d2 + d3 = y1
d1 + 2d2 + 4d3 = y2

里德、所罗门

里德所罗门码
基于有限域的多项式除法

伽罗瓦

数据码加纠错码加补 0
01010101101010100000000000011111111111111

绘制

遮罩

惩罚机制

绘制格式信息

自定义二维码

在中间增加图案

在二维码内增加图案

https://qrbtf.com/

自定义二维码的编解码

动态二维码

https://github.com/divan/txqr