Zint介绍Zint是一个强大的二维码编码生成开源工具,基于C语言开发,允许在任何广泛的公共领域条形码标准中轻松编码数据,并允许将此功能集成到你自己的程序。
Zint 能够对以下格式的数据进行编码:
Code 11, Standard Code 2 of 5, IATA Code 2 of 5, Industrial Code 2 of 5,Interleaved Code 2 of 5, Code 2 of 5 Data Logic, ITF-14, Deutche PostLeitcode, Deutche Post Identcode, UPC-A, UPC-E, EAN-2, EAN-5, EAN-8,EAN-13, UK Plessey, MSI Plessey, Telepen Alpha, Telepen Numeric, Code 39,Extended Code 39, Code 93, PZN, Code 23, LOGMARS, Codabar, Pharmacode, Code128, EAN-128, NVE-18, Code 16k, PDF417, MicroPDF417, Two-Track Pharmacode,PostNet, PLANET, Australia Post 4-State Symbols, RM4SCC, USPS OneCode, GS1DataBar, DataBar-14, DataBar Limited, DataBar Extended, DataBar Stacked,Composite Symbology, Data Matrix, QR Code, Maxicode, Aztec Code, EAN-13,Micro QR, Korea Post Barcode, HIBC Code 128, HIBC Code 39, HIBC Data Matrix,HIBC PDF417, HIBC MicroPDF417, HIBC QR Code, HIBC Aztec Code, Japanese PostalCode, Code 49, Channel Code, Code One, Grid Matrix, FIM and Flattermarken.编译方法1、下载需要的库
Zint 本身其实不依赖其他库,但是如果需要使用到 PNG 保存的话,那么需要 libpng 和 zlib。
首先,下载这三个库,然后解压放置在同一个文件夹中。本文中,使用 zlib-1.2.11、libpng1.6.37 和 zint-2.3.0(你也可以使用其他版本,但是可能也会遇到其他问题)。下载链接如下:
zlib /下载好以后,解压到同一文件夹,如下图所示:
2、编译 libpng
libpng 依赖 zlib,在 libpng 的工程项目中,已经包含了 zlib,因此,我们只要编译 libpng 的项目,就可以得到 libpng 和 zlib 的链接库。而编译 libpng 首先需要编译 zlib。步骤如下:
(1)打开 lpng - projects - vstudio - vstudio.sln
我这里使用的是 vs2017,打开 vstudio.sln 时,会提示升级之类的,点确定即可。
(2)解决「error C2220: 警告被视为错误」
如果直接生成解决方案,会出现 「error C2220: 警告被视为错误」 这样的错误,解决方法为:右键项目 - 属性 - C/C++ - 常规 - 将错误视为警告改为 「否」。
(3)生成 zlib.lib
右键项目 - 生成 即可。
(4)生成 libpng.lib
右键项目 - 生成 即可。
上述步骤生成的为 Debug 版本的库,通常情况我们也需要 Release 版本的库。生成步骤同 1~4,只是将 Debug 环境改为 Release 环境。
生成的库如下图所示:
3、编译 zint
zint 的依赖库 libpng 和 zlib 已经编译完毕,现在可以开始编译 zint 了,步骤如下:
(1)设置「附加包含目录」和 「附加库目录」
设置「附加包含目录」:libzint 右键属性 - C/C++ - 附加包含目录 - 添加 lpng 目录和 zlib 目录。
设置「附加库目录」:libzint 右键属性 - 链接器 - 常规 - 附加库目录 - 添加 Step 2 中 zlib.lib 和 libpng.lib 存放的位置。
(2)去除 NO_PNG 预处理器定义
如果 NO_PNG 宏被定义,libzint 不会使用到 libpng 和 zlib,但是也无法保存为 .png 格式了。我们这里将 NO_PNG 宏去掉即可。右键 - 属性 - C/C++ - 预处理器 - 预处理器定义 - 找到 NO_PNG,删掉即可。
(3)Debug 版本需要添加 「附件依赖项」
libzint 右键属性 - 链接器 - 输入 - 附加依赖项 - 添加 libpng16.lib 和 zlib.lib。
(4)编译错误解决
右键项目 - 生成后,出现如下错误:
这是缺少一个压缩比的宏定义,可能是我们用的3个库的版本不对应,没关系,这个宏定义网上都有介绍,我们手动添加一个:
#define Z_BEST_COMPRESSION 9 //压缩比优先
重新生成即可。
生成的库如下图所示:
至此,Zint库编译成功,关注我,下一篇说说Zint库怎么使用。