Qt中QZXing如何编译使用
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,小编给大家分享一下Qt中QZXing如何编译使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.编译下载源码后可以用 C
千家信息网最后更新 2024年11月11日Qt中QZXing如何编译使用
小编给大家分享一下Qt中QZXing如何编译使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
1.编译
下载源码后可以用 CMake 或者直接打开 pro 进行构建。网上有人编译失败,但是我用 Qt5.15 + VS2019 编译 QZXing3.3.0 并没有出现编译问题。 编译复制头文件和库文件到我们的工程。
测试工程(Qt5 + MSVC2019):
https://github.com/gongjianbo/MyTestCode2021/tree/master/Qt/QtQZXingVS2019
2.二维码生成
先打开编码功能,添加一个宏:
DEFINES += ENABLE_ENCODER_GENERIC
然后从 QZXing README 看简单的生成示例:
#include "QZXing.h" int main(){ QString data = "text to be encoded"; QImage barcode = QZXing::encodeData(data); //QImage barcode = QZXing::encodeData(data, QZXing::EncoderFormat_QR_CODE, // QSize(240, 240), QZXing::EncodeErrorCorrectionLevel_H);}
接口声明:
#ifdef ENABLE_ENCODER_GENERIC//二维码编码接口,目前仅支持QR Code码//QZXingEncoderConfig是个结构体,成员如下一个重载接口的参数static QImage encodeData(const QString &data, const QZXingEncoderConfig &encoderConfig); //二维码编码接口,目前仅支持QR Code码//encoderFormat 编码格式枚举//encoderImageSize 生成二维码的大小//errorCorrectionLevel 纠错等级//border =true会有一圈白边,感觉没啥用//transparent =true会半透明,感觉没啥用static QImage encodeData(const QString& data, const EncoderFormat encoderFormat = EncoderFormat_QR_CODE, const QSize encoderImageSize = QSize(240, 240), const EncodeErrorCorrectionLevel errorCorrectionLevel = EncodeErrorCorrectionLevel_L, const bool border = false, const bool transparent = false);#endif // ENABLE_ENCODER_GENERIC
由于是使用 Qt 封装的,所以不用像其他库那样还要自己根据矩阵结果绘制 QImage。
3.二维码识别
文档里着重讲了解码的使用,并且封装了相应的 QML 组件。
C++ 使用:
#include "QZXing.h" int main(){ QImage imageToDecode("file.png"); QZXing decoder; //必要设置 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(imageToDecode);}
QML 使用:
#include "QZXing.h" int main(){ ... QZXing::registerQMLTypes(); ...}
import QtQuick 2.0import QZXing 3.3 Item{ function decode(preview) { imageToDecode.source = preview decoder.decodeImageQML(imageToDecode); } Image{ id:imageToDecode } QZXing{ id: decoder enabledDecoders: QZXing.DecoderFormat_QR_CODE / //可选设置 tryHarderType: QZXing.TryHarderBehaviour_ThoroughScanning | QZXing.TryHarderBehaviour_Rotate imageSourceFilter: QZXing.SourceFilter_ImageNormal //| QZXing.SourceFilter_ImageInverted / onDecodingStarted: console.log("Decoding of image started...") onTagFound: console.log("Barcode data: " + tag) onDecodingFinished: console.log("Decoding finished " + (succeeded==true ? "successfully" : "unsuccessfully") ) }}
参数较多,如果有疑问可以搜 zxing 的文档。经测试,该库是可以做一些简单的图像识别,可以识别截图中的二维码,但是对拍照的二维码识别不了,所以要直接识别还是得用上图像处理库。
以上是"Qt中QZXing如何编译使用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
编译
二维
二维码
接口
编码
篇文章
生成
内容
参数
图像
工程
感觉
文档
封装
支持
测试
必要
不怎么
不用
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
将本机数据库备份到云
西京学院网络安全
中山财务机器人rpa软件开发
网站服务器压力测试
数据库如何存标签
2017网络安全个人总结
网络技术行业
阿里云服务器维护费用
lns服务器地址
u8服务器更新要多久
千人同时在线服务器
下列关于网络安全处理
小公司软件开发10年跳槽
用户安全不能执行此服务器
潮流软件开发设施标准
山西数据库安全箱批量定制
传奇服务器列表怎么制作
sql显示数据库
大学生网络技术创业计划书
学软件开发编程
网络技术 中职
dnf服务器无法修复
关于计算机网络技术的挑战
软件开发行业政策分析
商酷网络技术有限公司
上海铝团互联网科技
数据库备份怎么老出错啊
4.26首都网络安全日
嵌入式驱动软件开发
网络安全任职要求