1 / 21
文档名称:

(完整版)二维码的生成细节和原理.docx

格式:docx   大小:544KB   页数:21页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

(完整版)二维码的生成细节和原理.docx

上传人:kunpengchaoyue 2021/4/11 文件大小:544 KB

下载得到文件列表

(完整版)二维码的生成细节和原理.docx

文档介绍

文档介绍:二维码的生成细节和原理
2013-10-29 09:46 陈皓 酷壳网 字号:T | T
收視Q
二维码又称QR Code , QR全称Quick Response,是一个近几年来移动设备
上超流行的一种编码方式,它比传统的 Bar Code条形码能存更多的信息,也能
表示更多的数据类型
AD : 51CTO学院:IT精品课程在线看!
二维码又称QR Code,QR全称Quick Response,是一个近几年来移动设备
上超流行的一种编码方式,它比传统的 Bar Code条形码能存更多的信息,也能 表示更多的数据类型:比如:字符,数字,日文,中文等等。这两天学****了一下 二维码图片生成的相关细节,觉得这个玩意就 是一个密码算法,在此写一这篇
文章,揭露一下。供好学的人一同学****之。
关于 QR Code Specification ,可参看这个 PDF:
http://raide nii. net/files/datasheets/misc/
基础知识
首先,我们先说一下二维码一共有 40个尺寸。官方叫版本Version 。Version 1
是21 x 21的矩阵,Version 2 是25 x 25的矩阵,Version 3 是29的尺寸,
每增加一个version,就会增加4的尺寸,公式是:(V-1)*4 + 21 ( V是版本号)
最高 Version 40 , (40-1)*4+21 = 177 ,所以最高是 177 x 177 的正方形。
F面我们看看一个二维码的样例:
Pcsiiion DrteciLon 、
Quiet Zone
FuncEion
zncjdinj
Region
Separa:ar5 ri>r P<-iiKOR
Pinefni
A ignmem Rarttrm
-^Fnnnat lnfhcmatinn
\ 亠
_ive^ie:. tnfi枷Mon
□ata and Errfir
定位图案
? Position Detectio n Patter n 是定位图案,用于标记二维码的矩形大小。
这三个定位图案有白边叫 Separators for Postio n Detectio n Patterns 之所以三个而不是四个意思就是三个就可以标识一个矩形了。
? Timing Patterns 也是用于定位的。原因是二维码有 40种尺寸,尺寸过 大了后需要有根标准线,不然扫描的时候可能会扫歪了。
? Alignment Patterns 只有 Version 2 以上(包括 Version2 )的二维码 需要这个东东,同样是为了定位用的。
功能性数据
? Format Information 存在于所有的尺寸中,用于存放一些格式化数据 的。
? Version Information 在 >= Version 7 以上,需要预留两块 3 x 6 的区
域存放一些版本信息。
数据码和纠错码
? 除了上述的那些地方,剩下的地方存放 Data Code 数据码 和 Error
Correction Code 纠错码。
数据编码
我们先来说说数据编码。 QR 码支持如下的编码:
Numeric mode 数字编码,从 0 到 9。如果需要编码的数字的个数不是 3 的 倍数,那么,最后剩下的 1 或 2 位数会被转成 4 或 7bits ,则其它的每 3 位数字 会被编成 10,12 ,14bits ,编成多长还要看二维码的尺寸 (下面有一个表 Table 3 说明了这点)
Alphanumeric mode 字符编码。包括 0-9,大写的A到Z (没有小写),以
及符号$ % * + - . / :包括空格。这些字符会映射成一个字符索引表。如下所
示:(其中的 SP 是空格, Char 是字符, Value 是其索引值) 编码的过程是把 字符两两分组, 然后转成下表的 45 进制,然后转成 11bits 的二进制, 如果最后 有一个落单的,那就转成 6bits 的二进制。而编码模式和 字符的个数需要根据 不同的 Version 尺寸编成 9, 11 或13 个二进制(如下表中 Table 3 )
Chsr : *曲
亡血
ULF
Hhar
"har
Va U0
Char「阳』Ei
Otar
VhI*
亡hs『

0 0
6
&
G
12
I
16
0
24
U : 30
SP
36

-
42
1 : 1
7
7
D
13
J
19
p
25
V : 3