×

细节:关于二维码的一些事

96
Ziya
2014.02.07 10:42* 字数 1165

介绍

随着智能手机的使用人群越来越广泛,基于二维码的应用也越来越多。今天,就和大家聊一聊二维码吧。

二维码是在一维码的基础上扩展出的,具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。

一维码是只在横向记录数据,书籍上的ISBN就是典型的一维码。

ISBN

而二维码则在横向及纵向都会记录数据,我们常说的二维码其实是QR码,是众多二维码种类中的一员。

QR码

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

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

30%容错

常见用途

QR码的应用范围广阔,现在已经很常见了,随便举几个例子:

微信

微信二维码

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

新浪微博

新浪微博

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

QQ浏览器

网址二维码

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

应用方法

关于二维码最基本的使用方法,我们一定十分熟悉:

拿起手机,打开二维码扫描的应用,之后将摄像头对准海报或宣传页上的二维码图案,几秒钟后就能看到其中显示的内容。

接下来,我们就来聊一聊二维码的其他一些应用方式。

图案的再设计

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

改变颜色和线条

改变外形

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

扫描后登录

由于二维码的内容可以是一段定制的文本,所以我们可以通过它进行很多「神奇」的操作。微信网页版的登录就是其中一例。

当我们访问微信网页版时,会有这样一个提示:

微信网页版

这个QR码其实包含了一个定制的网址 https://login.weixin.qq.com/l/密匙 ,当使用手机端微信扫描这个二维码后,会自动访问该网址,并将登录信息发送至服务器。服务器接收到登录信息后,就完成了网页端的登录操作。

扫描后打开主页

微信的公众平台二维码和个人二维码类似。

微信公众平台

都是包含了同样格式的网址 http://weixin.qq.com/r/密匙 ,当微信扫描后,会自动读取该用户或公众平台的信息,提示用户进行关注。

另一种方式

除了类似微信的处理方法之外,还有另一种应用方式:

生成的二维码图片内容不再包含网址,而是一串格式化文本,形如

操作代码+间隔符号+密匙

例如

A:5C73EB9ED98D4ED542F2406C09279FDDBC1CE4BE
DO@SnVzdFppeWE=
……

当程序读取内容后,根据内置的判断条件去执行相应的操作,如A是「访问指定网址」、B是「显示指定文本」等等。

总结

总结一下,二维码最基本的应用流程如图:

简单流程

就是简单的 将内容放入二维码 -> 读取内容之后显示 。而常见的应用流程如图:

流程

  1. 生成指定内容的二维码图片;
  2. 扫描图片,读取其中包含的内容;
  3. 根据解析得到的内容,判断程序下一步的操作,如「访问指定网址」、「显示指定文本」、「发送指定请求」等。在这个过程中,按照程序的设置不同,可能会附带手机串号、登录信息、GPS坐标等信息,一同发往服务器;
  4. 当操作执行完毕后,显示操作结果。
产品思考
Web note ad 1