二维码的原理
# 条形码
全球的条形码标准都是由一个叫 GS1
的非营利性组织管理和维护的,通常情况下条形码由 95
条红或黑色的平行竖线组成,前三条是由黑-白-黑
组成,中间的五条由白-黑-白-黑-白
组成,最后的三条和前三条一样也是由黑-白-黑
组成,这样就把一个条形码分为左、右两个部分。剩下的 84 (95-3-5-3=84) 条按每 7 条一组分为 12 组,每组对应着一个数字,不同的数字的具体表示因编码方式而有所不同,不过都遵循着一个规律:
右侧部分每一组的白色竖线条数都是奇数个。这样不管你是正着扫描还是反着扫描都是可以识别的。
中国使用的条形码大部分都是 EAN-13
格式的,条形码数字编码的含义从左至右分别是前三位标识来源 国家物品编码中心 ,比如中国为:690–699,后面的 4 ~ 8 位数字代表的是厂商公司代码,但是位数不是固定的,紧接着后面 的 9~12 位是商品编码,第 13 位是校验码,这就意味着公司编码越短,剩余可用于商品编码的位数也越多,可表示的商品也就越多,当然公司代码出售价格也相应更昂贵,另外用在商品上的 EAN-13
条码是要到 国家物品编码中心去申请的。
# 二维码
二维码的版本从 1 ~ 40 共 40 个不同的版本,每个版本的基本结构都是相同的,所不同的是每个版本的码元(构成二维码的方形黑白点)数量不同,从版本 1 (21 × 21 码元) 至版本 40 (177 × 177 码元) 依次递增。
二维码可以分为这几不同的功能区域,分别是 版本信息、格式信息、数据及容错、定位标志、校正标志 等主要区域,其中定位标识用来对二维码进行定位,版本信息表示二维码的版本,有 40 种不同版本的二维码,从版本 1 到版本 40 ,每一版本比前一个版本每边增加 4 个码元,数据及容错用于实际保存的二维码数据信息和用于修正二维码损坏带来的错误的纠错码字,二维码的编码规则比较复杂,感兴趣的朋友可以去看看它的编码规范。
生成细节和原理 https://coolshell.cn/articles/10590.html