golang生成二维码及相关条码介绍
最近业务需求需要通过golang生成二维码,研究了github.com/boombuler/barcode,发现支持生成QR码,code39,code128等。趁着这个机会, 对不同的条码概念进行记录。
一.QR码
QR码(全称为快速响应矩阵码;英语:Quick Response Code)是二维条码的一种,于1994年由日本DENSO WAVE公司发明。
QR来自英文Quick Response的缩写,即快速反应,因为发明者希望QR码可以让其内容快速被解码。
QR码使用四种标准化编码模式(数字,字母数字,字节(二进制)和汉字)来存储数据。
QR码最常见于日本,为目前日本最流行的二维空间条码。
QR码比较普通条码可以存储更多数据,也无需要像普通条码般在扫描时需要直线对准扫描仪。因此其应用范围已经扩展到包括产品跟踪,物品识别,文档管理,营销等方面。
二.Codabar 条码
Codabar是由Monarch Marking Systems在1972年研制的条码。它是在”2 of 5”后早期阶段引入的条码。广泛用于需要序列号的领域,
如血库、门到门交货服务订单以及会员卡片管理。
三.Data Matrix码
Data Matrix原名Data code,由美国国际资料公司(International Data Matrix, 简称ID Matrix)于1989年发明。
Data Matrix又可分为ECC000-140与ECC200两种类型,ECC000-140具有多种不同等级的错误纠正功能,
而ECC200则透过Reed-Solomon演算法产生多项式计算出错误纠正码,其尺寸可以依需求印成不同大小,但采用的错误纠正码应与尺寸配合,
由于其演算法较为容易,且尺寸较有弹性,故一般以ECC200较为普遍。
四.EAN码
EAN码是国际物品编码协会制定的一种商品用条码,通用于全世界。EAN码符号有标准版(EAN-13)和缩短版(EAN-8)两种。 标准版表示13位数字,又称为EAN13码,缩短版表示8位数字,又称EAN8。两种条码的最后一位为校验位,由前面的12位或7位数字计算得出
五.aztec码
Aztec是一种高容量的二维条形格式。她可以对ASCII和扩展ASCII码进行编码。
当使用最高容量和25%的纠错级別的時候, Aztec可以对3000个字符或者3750个数字进行编码。
Aztec的矩阵大小在15 X 15和151 X 151之间变化。每个最小单位非黑即白。
她独特的位于正中的模式识别标志和安置算法使Aztec看起來像个漩涡一样
六.交叉25码(Interleaved 2 of 5)
条码生成,常用于物流管理,字符集仅为数字且个数为偶数,为奇数将自动在前面加”0”。
七.code39
CODE 39码的编码规则是:
1.每五条线表示一个字符;
2.粗线表示1,细线表示0;
3.线条间的间隙宽的表示1,窄的表示0;
4.五条线加上它们之间的四条间隙就是九位二进制编码,而且这九位中必定有三位是1,所以称为39码;
5.条形码的首尾各一个*标识开始和结束
八.code128
CODE128是一种高效率条码. 它一共映射了106种编码, 每种编码针对不同版本的CODE128(CODE128A, CODE128B, CODE128C), 代表了不同的数据组合.
同时, 每种编码通过11个黑白条模块的组合实现. 终止符比较特殊,由13个模块组成.
CODE128码是广泛应用在企业内部管理、生产流程、物流控制系统方面的条码码制,由于其优良的特性在管理信息系统的设计中被广泛使用,CODE128码是应用最广泛的条码码制之一。
CODE128码是1981年引入的一种高密度条码,CODE128 码可表示从 ASCII 0 到ASCII 127 共128个字符,故称128码。其中包含了数字、字母和符号字符;
CODE 128 码的特点:
1.可表示高密度数据和字符串;
2.每个字符由3个条、3个空、11个单元构成,字符串可变长;
3.符号内含校验码;
4.有三种不同的版本:A(数字、大写字母、控制字符)B(数字、大小字母、字符)C(双位数字)
- CODE128A: 标准数字和字母, 控制符, 特殊字符
- CODE128B: 标准数字和字母, 小写字母, 特殊字符
- CODE128C: [00]-[99]的数字对集合, 共100个
5.可用128个字符分别在A、B或C三个字符串集合中。
1.CODE128 码与CODE39码的区别:
Code 128码与Code 39码有很多的相近性,都广泛运用在企业内部管理、生产流程、物流控制系统方面。
不同的在于Code 128比Code 39能表现更多的字符,单位长度里的编码密度更高。
当单位长度里不能容下Code 39编码或编码字符超出了Code 39的限制时,就可选择Code 128来编码。所以Code 128比Code 39更具灵性。
2.为什么广泛使用CODE128码:
由于CODE128码可表示较全面的字符(数字、字母和符号),在同样长度的条码中可容纳的字符长度较长(高密度),条码长度与字符串长度无明显的敏感性,所以CODE128码是企业内部管理系统最为广泛使用的条码码制。