开发笔记

  • 首页
  • 工具箱
三味线的博客
  1. 首页
  2. C++
  3. 正文

zint编译(VS2015)

2021-05-06 1027点热度 1人点赞 0条评论

Zint是一个强大的一、二维码生成工具

接口文档:http://zint.org.uk/Manual.aspx?type=p&page=5

zint_manual.pdf下载

一、下载zlib,libpng,zint

zlib: https://zlib.net/fossils/

libpng: https://sourceforge.net/projects/libpng/files/libpng16/

zint: https://sourceforge.net/projects/zint/files/zint/

可直接下载我这里用的版本:

zlib-1.2.11.tar下载
libpng-1.6.37.tar下载
zint-2.9.1-src.tar下载

下载完后放到同一目录,注意将文件夹zlib-1.2.11改为zlib,libpng中可直接获取到。

二、开始编译

1. 编译zlib,libpng

打开 /libpng-1.6.37/projects/vstudio/vstudio.sln

右键zlib点击生成

再右键生成libpng,可以看到Debug目录下已生成相关lib,dll

以上就生成了debug库,将环境选项切换到release重复以上步骤即可生成release库。

2. 编译zint

将win32中的vs2015拷贝到上层目录

打开其中的zint.sln,右键libzint选择属性

在C/C++ -> 附加包含目录中添加zlib和libpng所在目录

在链接器 -> 常规 -> 附加库目录中添加上面编译好的库所在目录

在链接器 -> 输入 -> 附加依赖项中添加 zlib.lib,libpng16.lib

在C/C++ -> 预处理器 -> 预处理器定义中去掉NO_PNG,这样才能保存png图片

这时候编译会遇到一个函数无法解析的错误

打开libzint中的library.c文件,定位到187行,将其替换为

extern int dpd_parcel(struct zint_symbol *symbol, unsigned char source[], int in_length);

再重新生成即可

然后右键zint点击生成,可以看到Debug目录下已生成libzint.lib,zintd.dll

以上完成了debug库编译,切换到release选项再编译release库。

可以使用zint.exe进行测试

将前面编好的libpng16.dll拷贝到此目录,执行

./zint.exe -o test.png -b 60 -d "123456789"

可以看到生成了条形码图片

backend中的zint.h就是头文件

编译好的库:

zint下载

三、在Qt中使用

在pro文件中添加

# zint header
INCLUDEPATH += $$PWD/zint
DEPENDPATH += $$PWD/zint

# zint lib
CONFIG(debug, debug | release) {
    LIBS += -llibzintd
} else {
    win32{
        LIBS += -llibzint
    }
}

生成条码

    struct zint_symbol *my_symbol;
    my_symbol = ZBarcode_Create();
    strcpy_s(my_symbol->outfile, "output.png");
    my_symbol->symbology=BARCODE_CODE128B;
    QString encode_data;
    encode_data = "123456789";
    std::string enStr = encode_data.toStdString();
    ZBarcode_Encode(my_symbol, (unsigned char*)enStr.c_str(), 0);
    int error_num = ZBarcode_Print(my_symbol, 0);
    if (error_num != 0) {
        qDebug()<<QString::fromUtf8(my_symbol->errtxt);
    }
    ZBarcode_Delete(my_symbol);

将上面编译好的库拷贝到程序执行目录,执行程序,即可在目录下生成output.png

标签: C++ Qt
最后更新:2021-05-06

三味线

不吃咸鱼的喵

点赞
< 上一篇

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

Captcha Code

COPYRIGHT © 2022 voidcat.cn. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备18010095号-1