QR 码基本结构
- 格式信息:表示该二维码的纠错级别,分为L(7%)、M(15%)、Q(%25)、H(30%)
- 版本信息:即二维码的规格,共有40种规格的矩阵,从21x21(版本1)到177x177(版本40),每一个版本符号比前一版本每边增加4个模块
- 数据和纠错码字:实际保存的二维码信息和纠错码字(用于修正二维码损坏带来的错误)
QR 码数据容量
类型 |
容量 |
数字 |
最多7089字符 |
字母 |
最多4296字符 |
二进制数 |
最多2593字节 |
日本汉字/片假名 |
最多1817字符(采用Shift JIS) |
中文汉字 |
最多984字符(采用UTF-8) |
中文汉字 |
最多1800字符(采用BIG5) |
QR数据模式指示符
模式 |
指示符 |
ECI |
0111 |
数字 |
0001 |
字母数字 |
0010 |
8位字节 |
0100 |
日本汉字 |
1000 |
中国汉字 |
1101 |
结构链接 |
0011 |
FNC1 |
0101(第一位置),1001(第二位置) |
终止符 |
0000 |
QR编码过程
例如:对数据:01234567 进行编码(版本 1-H)
- 分组: 012 345 67
- 转成二进制:
- 012 → 0000001100
- 345 → 0101011001
- 67 → 1000011
- 转成序列: 0000001100 0101011001 1000011
- 字符数转成二进制: 8 → 0000001000
- 加入模式指示符:0001: 0001 0000001000 0000001100 0101011001 1000011
- 按需要将码字序列分块,并根据纠错等级和分块的码字产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个新的序列
- 在规格确定的条件下,将上面产生的序列按次序放入分块中,按规定把数据分块,然后对每一块进行计算,得出相应的纠错码字区块,把纠错码字区块按顺序构成一个序列,添加到原先的数据码字序列后面
- 构造矩阵,将探测图形、分隔符、定位图形、校正图形和码字模块放入矩阵中
- 将掩膜图形用于符号的编码区域,使得二维码图形中的深色和浅色区域能够比率最优的分布
- 生成格式和版本信息放入相应区域内