二维码是在一维条码的基础上扩展出另一维具有可读性的条码,使用黑白矩形图案表示二进制数据,被设备扫描后可获取其中所包含的信息。
我们先来说说数据编码。QR码支持如下的编码:Numeric mode 数字编码,从0到9。如果需要编码的数字的个数不是3的倍数,那么,最后剩下的1或2位数会被转成4或7bits,则其它的每3位数字会被编成 10,12,14bits,编成多长还要看二维码的尺寸Alphanumeric mode 字符编码。包括 0-9,大写的A到Z(没有小写),以及符号$ % * + – . / : 包括空格。这些字符会映射成一个字符索引表。如下所示:(其中的SP是空格,Char是字符,Value是其索引值) 编码的过程是把字符两两分组,然后转成下表的45进制,然后转成11bits的二进制,如果最后有一个落单的,那就转成6bits的二进制。而编码模式和字符的个数需要根据不同的Version尺寸编成9, 11或13个二进制Byte mode, 字节编码,可以是0-255的ISO-8859-1字符。有些二维码的扫描器可以自动检测是否是UTF-8的编码。
通过常见的图像输入设备或光电扫描设备,它们可以自动读取,并且会对识别出的信息进行自动处理。因为每个码制有自己的字符集,一个一个的字符占据自己的位置。所以,通过扫描能读取的数据信息在二维码中的位置是由定位图形和分隔符决定的。才能够快速地识别和处理图形旋转、变化等问题。二维码可以在水平和竖直方向上进行编码,用正方形的黑白格来记录信息,原理是利用了二进制的0和1,组成了一个二维码,我们扫码就相当于解码的过程,可以识别二维码上的信息。二维码还具有容错性,一些二维码只需要扫前面几行就可以识别出信息,哪怕二维码局部破损丢失都可能识别信息,不需要扫全。
现如今 我们的生活中很多场合都充满了二维码买菜购物扫一扫 加个好友扫一扫 ……每天要生成那么多的二维码 二维码的原理是什么?