条码最早用于便利店,是为了让电脑识别商品,实现快速结账。用扫描枪扫一下每件商品上的EAN-13条码,电脑就知道这件商品的价格、品名等信息了。
这种一道黑一道白的条码叫做一维条条码,它适用于储存少量信息的场合,像EAN-13只有13位数字。
随着条码的应用越来越普遍,有些需要在条码中存储大量信息的需求出现了,例如,生产质量管理系统希望将完整的生产过程信息记录在产品的条码上。这时,如果用一维条码来表示,这个条码将会非常巨大。如果我们把一维条码压扁,再将多个这样的条码层叠起来,这样不就可以在同样的空间里放更多的信息了吗?就跟把平房盖成楼房一样的道理。对,这就样就创造出了二维条码。
二维条码分两种类型:一是堆叠式,二是矩阵式。
堆叠式就是将一维条码压扁再层叠起来形成的,典型的码制有:PDF417 和 Code 49。
一维扫描枪(大家可以想想一维枪的读头有哪些类型?)可以实现读取堆叠式二维码的功能,只要扫描光线依次穿透每层的一维码就可以了。市面上可以读取堆叠式二维码的一维扫描枪并不多,典型产品是:ZEBRA LS4208-PR,它可以读取PDF417。这类一维枪数量少的原因是并没有太大的需求,如果真的要扫二维码,直接用二维枪就可以了。
矩阵式由一个方格网中排列的小方块或点(称为“模块”)组成。它们具有定位图案,例如:PDF417三个角上的“回”形符号,Data Matrix的一对邻边形成的“L”形符号,它们都是定位图案。几种典型的矩阵式二维码:
矩阵式二维码必须用二维扫描枪才能识读,因为它们的结构并不是简单地在纵向上层叠一维码。二维枪的扫描头会将条码的图像整体地抓拍下来,然后按模块的结构来解码。
二维码相对于一维码的优势:
信息量大。通常一维码可以表示50个以内的字符,二维码可以表示3000个以内的字符。
数据密度大(节省空间)。二维码所能表示的信息量是同等大小的一维码的30倍。
二维码具有纠错和数据恢复功能。这得益于二维码的前两项优势,它可以将所存储的数据用数学公式的来关联,从而可以验证解码结果的正确性,甚至在二维码图像部分损坏的情况下,依然可以恢复成完整的数据。大家经常见到QR码中心放一个LOGO的形式,其实那个LOGO挡住了QR码的部分图形,我们依然能正确扫出条码的内容,就是依靠了二维码的纠错和数据恢复功能。
二维码的缺点:
人无法阅读。通常一维码下方都印了内容的字符,便于我们阅读,当条码无法识读的时候,我们还可以看出它的内容。但二维码一般是不会把内容的字符印出来的,主要是因为它含有的内容可能很多,也可能附着的面很小,使得没办法写出内容的字符。但二维码有纠错和数据恢复功能在一定程度上缓解了无法识读的问题。