趣味二维码

移动支付作为现阶段中国的三大名片之一,给大家的生活提供了很多便利.移动支付最为普遍的用法就是扫二维码支付.大街小巷随处可见的二维码并不仅仅只有支付这一种场景.本文将简单描述二维码的原理,及其在生活场景中的应用时,比较有趣的应用方面.

1. 二维码原理

1.1 条形码

条形码(barcode)是由一组规则排列的条、空以及对应的字符组成的标记,“条”指对光线反射率较低的部分,“空”指对光线反射率较高的部分,这些条和空组成的数据表达一定的信息,。并能够用特定的设备识读,转换成与计算机兼容的二进制和十进制信息。通常对于每一种物品,它的编码是唯一的,对于普通的一维条码来说,还要通过数据库建立条码与商品信息的对应关系,当条码的数据传到计算机上时,由计算机上的应用程序对数据进行操作和处理.因此,普通的一维条码在使用过程中仅作为识别信息,它的意义是通过在计算机系统的数据库中提取相应的信息而实现的。一维条形码制作简单,编码码制较容易被不法分子获得并伪造。其次,一维条形码几乎不可能表示汉字和图像信息,

图一条形码

条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。

随着时代的发展,条形码所能存储的信息,已经不能满足互联网社会的需要.。

1.2二维码

二维码又称QR Code,QR全称QuickResponse。它是密码学在生活中的一种应用.相对于传统的条形码,它能存更多的信息,也能表示更多的数据类型:比如:字符,数字,日文,中文等等。

借用百度百科的说法就是:二维条码/二维码(2-dimensional bar code)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图象输入设备或光电扫描设备自动识读以实现信息自动处理:它具有条码技术的一些共性:每种码制有其特定的字符集;每个字符占有一定的宽度;具有一定的校验功能等。同时还具有对不同行的信息自动识别功能、及处理图形旋转变化点。

图一矩阵二维码原理

1.3二维码优点

二维码比一维条码记载数据量更多,二维码条码是一种高密度、高信息含量的便携式数据文件,是实现证件及卡片等大容量、高可靠性信息自动存储、携带并可用机器自动识读的理想手段。而且可以记载更复杂的数据,比如图片等。

二维码可以容纳1848个字母字符或2729个数字字符,约500个汉字信息。普通条码的译码错误率约为百万分之二左右,而二维码的误码率不超过千万分之一,译码可靠性极高。二维码采用了世界上最先进的数学纠错理论,如果破损面积不超过30%,条码由于沾污、破损等所丢失的信息,可以照常破译出丢失的信息。

2二维码容错率

2.1 容错原理

最常见的QR二维码,用的是里德-所罗门码(RS)来做纠错。分有几级,纠错级别越高,整体需要携带的信息越多:L级可纠正约7%错误、M级别可纠正约15%错误、Q级别可纠正约25%错误、H级别可纠正约30%错误。

RS码原理比较复杂,整体基于“任意k个确定点可表示一个阶数至少为k-1的多项式”,实际上发送超过k个点,就算中间有一些错误,也能通过数学原理反推出最初的多项式,从而获得信息。

在规格确定的条件下,将上面产生的序列按次序放如分块中,按规定把数据分块,然后对每一块进行计算,得出相应的纠错码字区块,把纠错码字区块按顺序构成一个序列,添加到原先的数据码字序列后面。

并不是所有位置都可以缺损,像最明显的那三个角上的方框,直接影响初始定位。中间零散的部分是内容编码,可以容忍缺损。

2.2 容错率的应用

大家的微信二维码,中间都会都是自己的头像,起始就是利用了,二维码容错率高的特点.二维码不便人眼阅读,在扫码的时候没法确定是不是要扫的二维码,如果加了头像,就可以做一个简单直观的校验,这是一个很聪明的做法.

图三微信二维码示例

借此机会,小编厚脸皮打个广告,下面是金管家的APP二维码,同样加了头像,你值得一扫.

图四 金管家APP二维码

2.3二维码掩码

理想的二维码,是黑白色块相间,分布均匀的.这样对用户比较友好,也便于扫描.但是实际应用中基本不会出现,大多都是黑白随机出现, 出现大面积的黑块或者白块的情况比较常见.

为了解决上述问题,引入了二维码掩码,简单点讲: 按规定的方式黑变白、白变黑啦,以使得整个图案中黑白块分布相对均匀, 二维码通过与 预设好的掩膜图案 做异或运算,得到新的二维码图案,预设的掩码图案是可选的.选哪种视情况而定.

图五 二维码应用趣味图

如图二维码,分布均匀,就会好看很多,生动很多.

3其他变形二维码

二维码的生成和读取原理上大同小异,只是大家做的形状不同,便于识别.大家一看到小程序码,就知道用微信扫一扫.更为快捷方便.另外,小程序的二维码中间原型部分可以添加图像,并不占用二维码信息空间,在一定程度上增强了二维码的容错性.

图六 小程序二维码

另外Facebook和snapchat也推出过自己的二维码,

图七Facebook和snapchat的二维码

本文,分别从二维码的发展史,容错性,掩码三个方面讲解了二维码比较有趣的应用.希望大家可以对二维码的认识多一点.下图我留了一个彩蛋,扫一扫二维码,会有惊喜的.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180503G0QYGM00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券