1.简介
QZXing是一个基于Qt框架的二维码解码库,它是对ZXing(Zebra Crossing)开源项目的一个Qt封装。ZXing是一个功能强大的开源二维码解码库,支持多种类型的码,包括QR码、DataMatrix码、Aztec码等。 QZXing提供了一个Qt插件,可以方便地在Qt应用程序中使用二维码解码功能。它可以在不同版本的Qt上运行,并提供了几种使用方式,包括直接解码图像、解码文件、解码摄像头捕获的图像等。使用QZXing可以轻松地将二维码解码功能集成到Qt应用程序中,实现扫描和解析二维码的功能。
zxing 是一个开源的一维/二维条码图像处理库,目前的版本为 Java 语言开发
链接地址:https://github.com/zxing/zxing
QZXing的下载地址:https://github.com/ftylitak/qzx
QZXing支持以下类型的条形码解码:
- UPC-A
- UPC-E
- EAN-8
- EAN-13
- ITF
- Code 39
- Code 93
- Code 128 (GS1)
- Codabar
- QR Code
- Data Matrix
- Aztec (beta)
- PDF 417
支持以下类型的编码:
- QR Code
2.编译
下载并解压,解压之后如图所示
编译:用qtcreator打开打开src里面的QZXing.pro文件。
直接编译,生成库文件,这里我使用的MinGW的编译器。
3.配置
配置: 新建thirdPart目录,新建测试工程目录QzxingTest。
进入到thirdPart目录下,创建qzxing目录,如下图所示,将编译好的库拷贝到如下图所示目录中,
将源码目录下QZXing.h、QZXing_global.h文件,拷贝到include目录下。
在QzxingTest工程的pro文件中,添加如下代码。
QMAKE_LIBDIR += $$PWD/../thirdPart/qzxing/
INCLUDEPATH += $$PWD/../thirdPart/qzxing/include
LIBS += -lQZXing3
4.示例
二维码识别和编码
decode代码:
void MainWindow::on_btnDecode_clicked()
{
QImage imageToDecode("F:/private/QzxingTest/qr_wechat.png");
QZXing decoder;
//mandatory settings
decoder.setDecoder( QZXing::DecoderFormat_QR_CODE | QZXing::DecoderFormat_EAN_13 );
//optional settings
//decoder.setSourceFilterType(QZXing::SourceFilter_ImageNormal | QZXing::SourceFilter_ImageInverted);
decoder.setSourceFilterType(QZXing::SourceFilter_ImageNormal);
decoder.setTryHarderBehaviour(QZXing::TryHarderBehaviour_ThoroughScanning | QZXing::TryHarderBehaviour_Rotate);
//trigger decode
QString result = decoder.decodeImage(imageToDecode);
ui->textEditOut->setText(result);
}
encode代码:
QString text = ui->textEditIn->toPlainText();
if(text.isEmpty())
return;
QImage img = QZXing::encodeData(text
,QZXing::EncoderFormat::EncoderFormat_QR_CODE
,QSize(200,200)
,QZXing::EncodeErrorCorrectionLevel::EncodeErrorCorrectionLevel_H
,true
,false);
ui->labelOut->setPixmap(QPixmap::fromImage(img));
要使用encode功能,需要pro文件加上宏定义:
DEFINES += QT_DEPRECATED_WARNINGS \
ENABLE_ENCODER_GENERIC
5.相关推荐
Qt 使用QtXlsx操作Excel表_qtxlsxwriter-CSDN博客
Qt 使用Quazip解压缩、压缩文件-CSDN博客
QCustomplot详解_qcustomplot中rescαlerαxis的作用_Mr.codeee的博客-CSDN博客