二维码、条码的工作原理
二维码的应用在市场生活中随处可见,扫码支付、添加好友、打开连接等。在电视节目《最强大脑中》,甚至有一个选手不用任何设备,只用人眼来识别二维码,读出其中的信息,让人好生佩服。那么问题来了,用了这么久二维码,你知道二维码的原理是什么吗?
其实,早在上世纪70年代,美国一家公司发明了二维码,只不过受制于设备限制,近几年才开始普及。但此前,我们在超市付款时,总能看到收银员扫描条形码来识别商品信息。在实际应用中,二维码要比条形码早了很久。
那我们先来说一下二维码的哥哥:条形码,也就是超时收银员扫的那个黑白条。电脑在水平方向上识别粗细不均的黑白条,就能找出藏在其中的商品编号信息。根据他们的宽度和间距,我们可以编码少量信息在里面,通过这少量信息再连接数据库,就可以查到大量数据,比如商品信息,库存,物流信息等等。常用的一维码标准有UPC,Code128,Code3/9(商用电子枪都可以自由设定需要使用的标准)。而我们可以理解为,这是一维码!
二维码与条形码最大的不同就是,条形码只在一个水平维度上携带信息,而二维码在水平垂直两个方向上都携带信息,这也就是为什么条形码是长方形,二维码是正方形的原因了。还有一个区别就是,一维的条形码只能由数字和字母组成,而二维码还能够存储汉字、图片等信息,相较于一维码,二维码的应用领域要更加广泛。
那么,最关键的问题来了,这些字符,到底是怎么变成这种二维码图案的呢?
二维码其实就是由很多0、1组成的数字矩阵。简单来说,二维码就是把你想表达的信息翻译成黑白两种小方块,然后填到这个大方块中。有点类似我们中学的答题卡,就是把我们的语言翻译成机器可识别的语言,说白了就是把数字、字母、汉字等信息通过特定的编码翻译成二进制0和1,一个0就是一个白色小方块,一个1就是一个黑色小方块。
字符在变成只有0和1组成的数字序列后,在进行一系列优化算法(此处自行脑补一系列优化算法),就得到了最终的二进制编码。在最后的这串编码中,一个0就对应的是一个'白色小方块',一个1就对应的一个‘黑色小方块’,我们把这些小方块分成8个一组填进大方块里,这就是一个完整的、可以被手机识别的二维码图案了。