一、簡介
QZxing開源庫: 生成和識別條碼和二維碼
下載地址:https://gitcode.com/mirrors/ftylitak/qzxing/tree/master
二、編譯與使用
1.下載并解壓,解壓之后如圖所示
2.編譯
打開src目錄下的QZXing.pro,選擇合適的編譯器進行編譯
最后生成庫libQZXing3.a和QZXing3.dll 庫
三、編寫demo測試二維碼生成和識別
除了上述兩個庫,還需要源碼中的兩個頭文件
1、在pro包含庫和頭文件
INCLUDEPATH +=$$PWD/qzxing/include
LIBS +=$$PWD/qzxing/libQZXing3.a# 使用生成二維碼功能需要加這一句
DEFINES += ENABLE_ENCODER_GENERIC
2、生成二維碼程序
QString text = ui->lineEdit->text();if(text.isEmpty())return;QImage img = QZXing::encodeData(text,QZXing::EncoderFormat::EncoderFormat_QR_CODE,QSize(200,200),QZXing::EncodeErrorCorrectionLevel::EncodeErrorCorrectionLevel_H,true,false);//圖片大小設置,與label大小適配//img = img.scaled(ui->label->width(), ui->label->height()); //圖片適應label,有點變形,太丑ui->label->setPixmap(QPixmap::fromImage(img));
3、識別二維碼
QImage img;//QString path= qApp->applicationDirPath()+"//file.png";//第一個參數:標準文件對話框的父窗口;第二個參數:標準文件對話框的標題;第三個參數:指定默認的目錄;第四個參數:文件過濾器//QString path = QFileDialog::getOpenFileName(this,"open file dialog","/","png files(*.png);;jpg files(*.jpg)");//img.load(path);img = ui->label->pixmap()->toImage();if(img.isNull()){qDebug()<<"圖片為空";return;}QZXing decode;decode.setDecoder(QZXing::DecoderFormat_QR_CODE);decode.setSourceFilterType(QZXing::TryHarderBehaviour_ThoroughScanning|QZXing::TryHarderBehaviour_Rotate);decode.setSourceFilterType(QZXing::SourceFilter_ImageNormal);QString info = decode.decodeImage(img);ui->lineEdit_2->setText(info);
4、注意事項
一定要將QZXing3.dll放在和exe同意目錄,否則會出現編譯通過,無法運行的問題