杂谈 | 关于二维码
作为新媒体运营者+软件开发者,每天都沉溺在“扫码关注”+“扫码下载”的狂潮之中。二维码的出现,在一定程度上给移动端应用的快速发展提供了便利;同时,智能手机和平板电脑的普及应用也反向催生了二维码应用,大家竞相投入大量资源进行技术研发。总之这是一个良性循环吧~
这里写一篇博文,把自己这些时间了解的关于二维码的资料总结一下,也算不辜负自己菜鸟新媒体工作者+辣鸡程序媛的身份(大雾= =)
(一)二维码是什么
1.1二维码怎么就“二维”了
- 二维码是一种比一维码更高级的条码格式。
- 一维码只能在一个方向(一般是水平方向)上表达信息。我们通常看见一维条形码具有一定的高度,像一个二位矩形,可是这个高度只是为了扫码器能够准确地定位,它在垂直方向则不表达任何信息;而二维码在水平和垂直方向都可以存储信息。
- 一维码只能由数字和字母组成,而二维码能存储汉字、数字和图片等信息。
- 一维条形码通常具有校验功能以防止错读,一旦条形码发生污损将被拒读。而二维条形码不仅能防止错误,而且能纠正错误,即使条形码部分损坏,也能将正确的信息还原出来。
1.2二维码信息表示
二维码的英文名叫作2-dimensional bar code,它是:
- 用某种特定的几何图形按一定规律在二维方向上分布
- 用黑白颜色模拟计算机内部的01比特流
- 通过图象输入设备或光电扫描设备自动识读,以实现信息自动处理
它具有条码技术的一些共性:
- 每种码制有其特定的字符集
- 每个字符占有一定的宽度
- 具有一定的校验功能 -
1.3二维码的前世今生
这项技术起源于日本,原本是为了追踪汽车零部件设计。我们一般看到的二维码当然是长这个样子的:
不过有一种码它是长这个样子的:
这个看上去高端大气上档次,低调奢华有内涵的东西叫做DPM码。这就是我们日常看见的黑白二维码的前身了。它是一种特殊的标识制作技术,又叫做“直接零部件标识。
这种技术可以实现直接在零部件表面上做标识,而不需要纸张、标签一类的标识载体。
DPM二维码技术现已在美国的汽车行业得到广泛应用,而我国的部分合资汽车厂商也相继开始了应用步伐。
由于DPM码是用来标识零部件的,工业要求制作DPM码的表面面积比较小,所以DPM码需要选择编码容量大的二维码。
DataMatrix二维码具有编码容量大、密度高、信息安全性高等特点,与其他二维条码相比,在相同尺寸与密度的情况下,可包含最多的数据信息。因此Datamatrix二维条码成为DPM码最常用的条码种类。
(二)二维码分类介绍
前面提到了编码容量大、密度高、信息安全性高的DataMatrix二维码,所以顺势介绍一下当前主流的几种二维码。
2.1组织形式分类
按照二维码组织形式的不同,可以简单地将二维码分成“堆叠式”和“棋盘式”两种。
堆叠式”:所谓“堆叠式”,在一定程度上继承了一维码的特性,它是把多行简短的一维码逐行堆叠起来,形成二维码。不过,由于要对每一行“一维码”所在行数进行判定,这种二维码也有自己的译码算法。
棋盘式”:“棋盘式”二维码又叫做“矩阵式”二维码,它通过构建一个二位平面矩阵,使用黑白像素点来模拟01比特流,即用黑色的像素点嗲表二进制的“1”,用白色的像素点代表二进制的“0”。像素点的排列组合确定了矩阵式二维条码所代表的意义。
2.2构成分类
2.2.1 PDF417
PDF417二维条码是一种堆叠式二维条码,目前应用最为广泛。每一个PDF417码是由3~90横列堆叠而成,而为了扫瞄方便,其四周皆有静空区,静空区分为水平静空区与垂直静空区,至少应为0.020寸,如图所示。
PDF417条码可表示数字、字母或二进制数据,也可表示汉字。
PDF417可以存储的信息量非常庞大,不仅可以将人的姓名、单位、地址、电话等基本资料进行编码,还可将人体的指纹、视网膜扫瞄、及照片等更加详细的信息记录在条码之中。(这样不但可以实现证件资料的自动输入,而且可以防止证件的伪造,减少犯罪~~~)
PDF417是一个公开码,任何人皆可用其演算法而不必付费,因此是一个开放的条码系统。
首先来看一下条码结构:
每个PDF417二维条码符号字符由4个条和4个空构成,每个条或空包含1~6个模块,总模块数为17,所以被称为PDF417条码。每行数据符号字符数相同,行与行左右直接衔接,最小行数为3,最大行数为90。PDF417条码的编码可分为3个部分:
- 数据区码子编码
- 错误纠正码子编码
-
添加行指示符号字符和起始符,终止符。
关于以上列出的三个部分,用下面的表格给一个较为直观的描述:
其中L表示左行指示符、R表示右行指示符。而数据区码子编码和错误纠正码子编码共享中间的空间,其中用d来表示数据区,用c来表示错误纠正区。
PDF417的纠错功能是通过将部分信息重复表示(冗余)来实现的。在PDF417码中,某一行除了包含本行的信息外,还有一些反映其它位置上的字符(错误纠正码)的信息。这样,即使当条码的某部分遭到损坏,也可以通过存在于其它位置的错误纠正码将其信息还原出来。
PDF417的纠错能力依错误纠正码字数的不同分为0~8共9级,见图4,级别越高,纠正码字数越多,纠正能力越强,条码也越大。当纠正等级为8时,即使条码污损50%也能被正确读出。下面提供可存放资料量与错误纠正等级对照表:
当然很显然的一点是,纠错的等级越高,二维码的大小也就越大。
【例】
以上乱七八糟说了一大堆……这里给一个详细一点的范例:如上图,黑色代表“条”,白色代表“空”,从左到右,每个条依次具有5、1、1、2个模块,每个空依次具有1、1、1、5个模块,总共有5+1+1+2+1+1+1+5=17个模块。
上图是一个更为直观的例子。
写这篇文章一开始只是为了比较一下不同种类的二维码,然而越往深看越发现结构和实现原理才是真正值得好好探究的部分~下一步会更新PDF417的编解码原理,同时找了一套教程叫《基于Android手机OS二维条码PDF417的原理解析与源码实现》,先学习看看~
2.2.2 QR Code 等更新……
2.2.3 Datamatrix 等更新……
(世间怎么会有如此厚颜无耻之人= =)
(文末彩蛋)世界上最大的二维码
世界最大二维码是加拿大的一对农民夫妇Kraay与Rachel在一块面积达10英亩的玉米地上种出来的,二维码的面积达到了2.8万平方米。而这块玉米地也被正式收录进了吉尼斯世界纪录,成为世界上最大的二维码。
Kraay与Rachel在翻看杂志的时候看到上面有不少的二维码,突发奇想的他们计划将自家农场的玉米地改造成二维码的形状,她在一位设计师和技术工人的帮助下完成了这幅创造纪录的巨幅“麦田”作品。二维码中包含的信息就是自家农场的网站,有人在乘飞机路过时候拿手机对着这块地一扫,就可以自动跳转到这户农家的网站。
结束语
在移动互联业务模式下,人们的经营活动范围更加宽泛,也因此更需要适时的进行信息的交互和分享。
随着移动网络、WIFI和移动设备的普及,二维码应用不再受到时空和硬件设备的局限。产品基本属性、图片、声音、文字、指纹等,都可以数字化的信息实现编码捆绑。
二维码技术适用于新媒体宣传、安全认证、质量追溯、物流仓储、材料识别、网络营销等等等等等等等等等等等等。随着国内物联网产业的蓬勃发展,相信更多的二维码技术应用解决方案也会被开发出来,届时,二维码将成为移动互联网的入口,大家出门的问候语也要变成:
(。・∀・)ノ゙嗨,今天你扫码了吗?