1.下载QZXing库

为什么要下载QZXing库,而不直接使用编译好的库文件?因为每个人使用的编译环境是不一样的,使用的编译器也不尽相同,不同编译器编译出来的库放到不同编译器下则不一定能够使用(至少我是这么理解的,使用别人的也经常出现崩溃的问题)。

zxing 是一个开源的一维/二维条码图像处理库,目前的版本为 Java 语言开发

链接地址:https://github.com/zxing/zxing

QZXing的下载地址:GitHub - ftylitak/qzxing: Qt/QML wrapper library for the ZXing library. 1D/2D barcode image processing library

2.编译库文件

QZXing是对ZXing用qt封装过的,所以很方便使用,打开src文件夹里面的pro文件,直接构建(快捷键Ctrl+B),这里不要点绿色的运行按钮,因为这是编译库,而不是运行程序。如出现 无法找到执行文档,请指定一个 这个弹窗时,点击  构建 - 重新构建项目“xxx”。Qt 编译C++库时提示“无法找到执行文档,请指定一个”的解决方法。_SherryMirai的博客-CSDN博客_qt无法找到执行文档

编译过程中有的可能会出现各种错误,这里仅仅列出我出现的(我使用的是qt5.5,mingGW32编译)

错误1: error: 'uint8_t' does not name a type typedef uint8_t byte

大概是说c++用了c的代码,在错误上面添加  #include <stdint.h> 这个头文件即可

错误2: error: '>>' should be '> >' within a nested template argument list

错误原因:使用C++11之前标准的编译器会将">>“视为移位符号。

解决方法:打开pro文件,添加  CONFIG += c++11 utf8_source

对于编译过程中出现的警告就不管了。然后打开debug的文件夹下debug文件夹,

将里面的.a文件跟dll文件复制出来,新建一个lib文件夹, 放到lib里面。

3.写测试用例

新建qt工程,普通qt widget app即可。

然后将lib放到工程根目录下

然后再pro中添加库引用,保存

#使用qzxing需要添加内容
LIBS += -L$$PWD/lib         -lQZXing3   #添加库
DEFINES += ENABLE_ENCODER_GENERIC   #开启二维码生成功能

然后在src文件夹里面复制出QZXing.hQZXing_global.h,同样放到根目录下。

最后在你需要用到的源文件包含头文件

        #include "QZXing.h"

即可正常使用

生成二维码示例:(encodeData好像说只能生成二维码,我没测试条码情况)

QImage img;
img = QZXing::encodeData(QString("12345"),QZXing::EncoderFormat_QR_CODE);

得到img的图片就是12345生成的二维码。

二维码或条码识别示例:

    //开始解码QImage img(fileName);QZXing decoder;//设置解码类型 -- 二维码或ean13的条码decoder.setDecoder(QZXing::DecoderFormat_QR_CODE | QZXing::DecoderFormat_EAN_13 );//可选设置//decoder.setSourceFilterType(QZXing::SourceFilter_ImageNormal | QZXing::SourceFilter_ImageInverted);decoder.setSourceFilterType(QZXing::SourceFilter_ImageNormal);decoder.setTryHarderBehaviour(QZXing::TryHarderBehaviour_ThoroughScanning | QZXing::TryHarderBehaviour_Rotate);//解码QString result = decoder.decodeImage(img);

将文件完整路径给到fileName,生成的result就是识别到的内容

QT 使用QZXing生成,解析二维码跟条码相关推荐

  1. Java生成解析二维码

    Java生成二维码 一.介绍 1. 理解二维码 黑点代表二进制中的1,白点代表二进制中的0,通过1和0的排列组合,在二维空间记录数据.通过图像输入设备,读取其中的内容. 2. 二维码分类 二维码有不同 ...

  2. Java简单的生成/解析二维码(zxing qrcode)

    Hi I'm Shendi Java简单的生成/解析二维码(zxing qrcode) 在之前使用 qrcode.js 方式生成二维码,但在不同设备上难免会有一些兼容问题,于是改为后端(Java)生成 ...

  3. Android超方便 集成 Zxing实现扫一扫,闪光灯,生成二维码图片,解析二维码(条码)等功能

    之前我写过一篇博客是关于如何将zxing集成到Android Studio中,以及简单的实现扫一扫功能. 详情请看:Android Studio集成Zxing扫一扫 但是,上面那篇博客只有有一个扫一扫 ...

  4. 几行代码搞定java生成解析二维码功能

    最近公司要求扫描二维码和生成二维码的功能.而群里部分网友也提到了.我这里就写了一个demo,和大家分享.代码很简介,希望大家能够喜欢. 网友表示在网上搜索了很多,发现不是代码不全,就是jar不匹配. ...

  5. asp.net C#生成和解析二维码代码

    类库文件我们在文件最后面下载 [ThoughtWorks.QRCode.dll 就是类库] 使用时需要增加: using ThoughtWorks.QRCode.Codec; using Though ...

  6. java生成二维码/java解析二维码

    二维码的优缺点 优点:1. 高密度编码,信息容量大:2.编码范围广:3.容错能力强:4.译码可靠性高:5.可引入加密措施:6.成本低,易制作,持久耐用. 缺点:1.二维码技术成为手机病毒.钓鱼网站传播 ...

  7. 基于zxing生成与解析二维码、条形码

    基于zxing(https://github.com/zxing/zxing)与maven,针对二维码(包括带图片的二维码).条形码进行了简单的封装,以便在项目中更好的利用. ZXing是一个开源Ja ...

  8. 使用摄像头解析二维码,且可以生成含具体信息的二维码

    开源一份早些时候写过的代码,关于二维码在PC端的应用. 二维码的具体应用范围,这里不详述. 之前项目主要用于朋友一个牙科的平台,不过后面没有采用,也就没有往后继续开发,大家要是觉得有意思,可以自己拿去 ...

  9. Java生成和解析二维码

    前言:曾经有做过不少微信公众号和移动网站的项目,对二维码还算有点了解,刚收到这个任务的时候就想着竟然要用二维码存文本,那就得先考究一下这小小的二维码到底能存多少的东西了. 需求:使用二维码存放文本(x ...

最新文章

  1. 干货 | 大数据人工智能领域从菜鸟到高手晋级指南
  2. Github上如何在组织中创建代码仓库,并如何授予该组织中某个小组权限?
  3. oracle spatial(一)开端
  4. 何李石:七牛直播云技术详解
  5. tensorflow dataset.shuffle dataset.batch dataset.repeat 理解 注意点
  6. java的CyclicBarrier使用
  7. 【软件测试】黑盒测试の因果图法
  8. 关于大小端、位域的一些概念
  9. SVN: bdb: BDB1538 Program version 5.3 doesn't match environment version 4.7
  10. 用ffmpeg在命令行下,对文件进行转码H264
  11. 用Python做一个翻译软件
  12. 一款不错的远程控制软件,还是绿色版哦
  13. HDFS和FastDFS的上传、下载效率对比测试
  14. 对角化求可逆矩阵_「线性代数」求可逆矩阵P,使得相似矩阵对角化
  15. Bytom储蓄分红合约解析
  16. EISeg——应用于语义分割的自动标注软件
  17. x265-1.8版本-encoder/dpb.cpp注释
  18. 如何在滴滴云 DC2 上搭建 MySQL 服务
  19. c语言“递归系列”:递归实现x的n次方
  20. 【前端-Js基础方法】字符串常用方法汇总

热门文章

  1. Java基础系列28-常用api之包装类
  2. 肝了一晚上搞出来一个微信订阅号鉴黄机器人
  3. 整理一些前端模版比较好的网站
  4. 叶胜超:可以让你保本的8条投资经验!
  5. SDLC开发过程:基于DevSecOps理念的解决方案
  6. 解密微信开放高级接口 企业如何应对
  7. 虚拟机终端输入sudo的密码时,无法输入密码
  8. cad打开卡死_求助,cad 一打开就卡死,完全没办法运行,怎么处理
  9. 438. 找到字符串中所有字母异位词【异位词-哈希数组】
  10. vue中父元素点击事件与子元素点击事件冲突