二维码
1.1、二维码简介

二维码是在横向及纵向都会记录数据,二维码是在一维码的基础上扩展出的,具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。 随着智能手机的使用人群越来越广泛,基于二维码的应用也越来越多。

1.2、QR码

我们常说的二维码其实是QR码(Quick Response Code),是众多二维码种类中的一员。

QR码通常都是一个由黑白方块组成的正方形。 左上、右上、左下三个角落均有一个「回」字状的定位标识,保证程序在读取内容时可以正确的识别。

QR码还具有容错机制,即使图案有一定的破损,仍可保证内容能够被正确的读取。 生成的QR码图案容错率一般为7%,最高可达到30%。下图是同一内容,30%容错率的示例。

1.3、QR码的使用场景

QR码(Quick Response Code)的名字就可以想到了他的用途。 他的用途就是为了方便人们快速获取信息、或者快速操作的,以减少不必要的输入。

1.3.1、QR码中包含URL,用于下载或者打开

QQ浏览器集成了网址生成QR码的功能,可将当前访问的网址生成一张二维码图片,用手机App扫描时即可快速访问。

1.3.2、扫描QR码进行登陆

微信的多设备登陆,可以通过已经登陆的设备扫描另外一个设备进行登陆,而不需要重新输入用户名和密码。

1.3.3、扫描QR码进行支付

支付宝付款,可以通过扫描二维码付款。

1.3.4、自定义协议

QR码本质上就是把一串文本编码转换成一张图片,我们使用设备扫描这个图片,获得编码前的文本信息。 所以,我们可以利用这个做任何事情,只是我们可能需要自己定义这个文本的格式,以便被设备扫描后,能够正确的解析、处理。

1.4、QR码中包含一个小图标,增强识别力

新浪微博很好的利用了QR码的容错机制,在二维码图案中加入用户头像,增强识别力。

1.5、美化QR码图案

微信的QR码,在原有二维码图案的基础上加入了一些美化元素。

由于QR码拥有良好的容错和定位机制,所以我们完全可以在原有黑白图案的基础上进行再设计。

只要保证足够的对比度,二维码图片包含的内容就可以很容易的被读取出来。

1.6、各种语言中对QR码的编码和解码
Cqrencode
Objective-Cqrencode
JavaZXing
AndroidZXing
JavaScriptjquery-qrcode
Node.jsqrencode_mini
Shellqrencode
1.7、在线QR码的编码和解码