Qt中QZXing如何编译使用
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,小编给大家分享一下Qt中QZXing如何编译使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.编译下载源码后可以用 C
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
服务器如何设置默认当前登录账户
武汉大学网络安全学院官网
服务器带外管理协议
DMDW网络技术
重装系统速达数据库备份
拉萨网络安全工程师
电脑服务器系统进入安全模式
苹果的软件开发分成规则
郑州软件开发需要笔试吗
软件开发工程师安防
数据库技术卷子
漳平软件开发外包靠谱公司
腾讯网站服务器在哪里提供
网络安全m是什么意思
闵行区营销软件开发品质保障
东莞网络安全管理
上海pdu服务器电源价格怎么样
伊宁市天气预报软件开发
联通校招县里网络技术
服务器运行日志
云服务器gpu费用
浙江网络软件开发销售
数据库写入一条数据大概多长时间
魔兽世界新服务器开始时间
东南大学网络安全学院官网
web应用服务器面试
湖南软件开发解决方案代理
iis登录不上数据库
如何给数据库的表添加no
互联网时代对科技创新的运用