二维码zxing-Cpp+qt5.9中的使用
- Zxing-cpp的简介
zxing-cpp是一套加解二维码条形码的库,此库是zxing的c++版,在识别率和识别速度上都是比较快的。
此库在持续的更新中,下载地址:https://github.com/nu-book/zxing-cpp
- Zxing-cpp的使用实例
本次使用的是zxing-cpp的源码,应用到qt5.9的工程中,把源码下载下来,取目录:zxing-cpp-master\core\src,这是所有的源码都在这个里面,把src命名为zxing,添加INCLUDEPATH += $$PWD/zxing,添加所有的源文件到pro工程中,我使用了opencv,稍后的源码所有东西上传。如下工程pro文件
工程文件.pro
#-------------------------------------------------
#
# Project created by QtCreator 2020-05-18T15:10:28
#
#-------------------------------------------------
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = TestBarQRCode
TEMPLATE = app
# The following define makes your compiler emit warnings if you use
# any feature of Qt which has been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
CONFIG += c++11
INCLUDEPATH += $$PWD/zxing
#INCLUDEPATH += $$PWD/zxing/qrcode
INCLUDEPATH += $$PWD/opencv
LIBS += -L$$PWD/opencv/lib -lopencv_core345 -lopencv_imgcodecs345 -lopencv_imgproc345 -lopencv_dnn345 -lopencv_highgui345
SOURCES += \
main.cpp \
mainwindow.cpp \
quickresponsecode.cpp \
zxing/qrcode/QRAlignmentPattern.cpp \
zxing/qrcode/QRAlignmentPatternFinder.cpp \
zxing/qrcode/QRBitMatrixParser.cpp \
zxing/qrcode/QRCodecMode.cpp \
zxing/qrcode/QRDataBlock.cpp \
zxing/qrcode/QRDataMask.cpp \
zxing/qrcode/QRDecoder.cpp \
zxing/qrcode/QRDetector.cpp \
zxing/qrcode/QREncoder.cpp \
zxing/qrcode/QRErrorCorrectionLevel.cpp \
zxing/qrcode/QRFinderPattern.cpp \
zxing/qrcode/QRFinderPatternFinder.cpp \
zxing/qrcode/QRFormatInformation.cpp \
zxing/qrcode/QRMaskUtil.cpp \
zxing/qrcode/QRMatrixUtil.cpp \
zxing/qrcode/QRReader.cpp \
zxing/qrcode/QRVersion.cpp \
zxing/qrcode/QRWriter.cpp \
zxing/BarcodeFormat.cpp \
zxing/BitArray.cpp \
zxing/BitMatrix.cpp \
zxing/BitSource.cpp \
zxing/CharacterSetECI.cpp \
zxing/DecodeHints.cpp \
zxing/DecodeStatus.cpp \
zxing/GenericGF.cpp \
zxing/GenericGFPoly.cpp \
zxing/GenericLuminanceSource.cpp \
zxing/GlobalHistogramBinarizer.cpp \
zxing/GridSampler.cpp \
zxing/HybridBinarizer.cpp \
zxing/LuminanceSource.cpp \
zxing/MultiFormatReader.cpp \
zxing/MultiFormatWriter.cpp \
zxing/PerspectiveTransform.cpp \
zxing/ReadBarcode.cpp \
zxing/ReedSolomonDecoder.cpp \
zxing/ReedSolomonEncoder.cpp \
zxing/Result.cpp \
zxing/ResultMetadata.cpp \
zxing/ResultPoint.cpp \
zxing/TextDecoder.cpp \
zxing/TextEncoder.cpp \
zxing/TextUtfEncoding.cpp \
zxing/WhiteRectDetector.cpp \
zxing/ZXBigInteger.cpp \
zxing/aztec/AZDecoder.cpp \
zxing/aztec/AZDetector.cpp \
zxing/aztec/AZEncoder.cpp \
zxing/aztec/AZHighLevelEncoder.cpp \
zxing/aztec/AZReader.cpp \
zxing/aztec/AZToken.cpp \
zxing/aztec/AZWriter.cpp \
zxing/maxicode/MCBitMatrixParser.cpp \
zxing/maxicode/MCDecoder.cpp \
zxing/maxicode/MCReader.cpp \
zxing/oned/ODCodabarReader.cpp \
zxing/oned/ODCodabarWriter.cpp \
zxing/oned/ODCode39Reader.cpp \
zxing/oned/ODCode39Writer.cpp \
zxing/oned/ODCode93Reader.cpp \
zxing/oned/ODCode93Writer.cpp \
zxing/oned/ODCode128Patterns.cpp \
zxing/oned/ODCode128Reader.cpp \
zxing/oned/ODCode128Writer.cpp \
zxing/oned/ODEAN8Reader.cpp \
zxing/oned/ODEAN8Writer.cpp \
zxing/oned/ODEAN13Reader.cpp \
zxing/oned/ODEAN13Writer.cpp \
zxing/oned/ODEANManufacturerOrgSupport.cpp \
zxing/oned/ODITFReader.cpp \
zxing/oned/ODITFWriter.cpp \
zxing/oned/ODMultiUPCEANReader.cpp \
zxing/oned/ODReader.cpp \
zxing/oned/ODRowReader.cpp \
zxing/oned/ODRSS14Reader.cpp \
zxing/oned/ODRSSExpandedReader.cpp \
zxing/oned/ODUPCAReader.cpp \
zxing/oned/ODUPCAWriter.cpp \
zxing/oned/ODUPCEANCommon.cpp \
zxing/oned/ODUPCEANExtensionSupport.cpp \
zxing/oned/ODUPCEANReader.cpp \
zxing/oned/ODUPCEReader.cpp \
zxing/oned/ODUPCEWriter.cpp \
zxing/oned/ODWriterHelper.cpp \
zxing/pdf417/PDFBarcodeValue.cpp \
zxing/pdf417/PDFBoundingBox.cpp \
zxing/pdf417/PDFCodewordDecoder.cpp \
zxing/pdf417/PDFDecodedBitStreamParser.cpp \
zxing/pdf417/PDFDetectionResult.cpp \
zxing/pdf417/PDFDetectionResultColumn.cpp \
zxing/pdf417/PDFDetector.cpp \
zxing/pdf417/PDFEncoder.cpp \
zxing/pdf417/PDFHighLevelEncoder.cpp \
zxing/pdf417/PDFModulusGF.cpp \
zxing/pdf417/PDFModulusPoly.cpp \
zxing/pdf417/PDFReader.cpp \
zxing/pdf417/PDFScanningDecoder.cpp \
zxing/pdf417/PDFWriter.cpp \
zxing/textcodec/Big5MapTable.cpp \
zxing/textcodec/Big5TextDecoder.cpp \
zxing/textcodec/Big5TextEncoder.cpp \
zxing/textcodec/GBTextDecoder.cpp \
zxing/textcodec/GBTextEncoder.cpp \
zxing/textcodec/JPTextDecoder.cpp \
zxing/textcodec/JPTextEncoder.cpp \
zxing/textcodec/KRHangulMapping.cpp \
zxing/textcodec/KRTextDecoder.cpp \
zxing/textcodec/KRTextEncoder.cpp \
zxing/datamatrix/DMBitMatrixParser.cpp \
zxing/datamatrix/DMDataBlock.cpp \
zxing/datamatrix/DMDecoder.cpp \
zxing/datamatrix/DMDefaultPlacement.cpp \
zxing/datamatrix/DMDetector.cpp \
zxing/datamatrix/DMECEncoder.cpp \
zxing/datamatrix/DMHighLevelEncoder.cpp \
zxing/datamatrix/DMReader.cpp \
zxing/datamatrix/DMSymbolInfo.cpp \
zxing/datamatrix/DMVersion.cpp \
zxing/datamatrix/DMWriter.cpp \
zxing/oned/rss/ODRSSExpandedBinaryDecoder.cpp \
zxing/oned/rss/ODRSSFieldParser.cpp \
zxing/oned/rss/ODRSSGenericAppIdDecoder.cpp \
zxing/oned/rss/ODRSSReaderHelper.cpp
HEADERS += \
mainwindow.h \
quickresponsecode.h \
zxing/qrcode/QRAlignmentPattern.h \
zxing/qrcode/QRAlignmentPatternFinder.h \
zxing/qrcode/QRBitMatrixParser.h \
zxing/qrcode/QRCodecMode.h \
zxing/qrcode/QRDataBlock.h \
zxing/qrcode/QRDataMask.h \
zxing/qrcode/QRDecoder.h \
zxing/qrcode/QRDecoderMetadata.h \
zxing/qrcode/QRDetector.h \
zxing/qrcode/QRECB.h \
zxing/qrcode/QREncoder.h \
zxing/qrcode/QREncodeResult.h \
zxing/qrcode/QRErrorCorrectionLevel.h \
zxing/qrcode/QRFinderPattern.h \
zxing/qrcode/QRFinderPatternFinder.h \
zxing/qrcode/QRFinderPatternInfo.h \
zxing/qrcode/QRFormatInformation.h \
zxing/qrcode/QRMaskUtil.h \
zxing/qrcode/QRMatrixUtil.h \
zxing/qrcode/QRReader.h \
zxing/qrcode/QRVersion.h \
zxing/qrcode/QRWriter.h \
zxing/BarcodeFormat.h \
zxing/BinaryBitmap.h \
zxing/BitArray.h \
zxing/BitHacks.h \
zxing/BitMatrix.h \
zxing/BitSource.h \
zxing/ByteArray.h \
zxing/ByteMatrix.h \
zxing/CharacterSet.h \
zxing/CharacterSetECI.h \
zxing/CustomData.h \
zxing/DecodeHints.h \
zxing/DecoderResult.h \
zxing/DecodeStatus.h \
zxing/DetectorResult.h \
zxing/GenericGF.h \
zxing/GenericGFPoly.h \
zxing/GenericLuminanceSource.h \
zxing/GlobalHistogramBinarizer.h \
zxing/GridSampler.h \
zxing/HybridBinarizer.h \
zxing/LuminanceSource.h \
zxing/MultiFormatReader.h \
zxing/MultiFormatWriter.h \
zxing/PerspectiveTransform.h \
zxing/ReadBarcode.h \
zxing/Reader.h \
zxing/ReedSolomonDecoder.h \
zxing/ReedSolomonEncoder.h \
zxing/Result.h \
zxing/ResultMetadata.h \
zxing/ResultPoint.h \
zxing/TextDecoder.h \
zxing/TextEncoder.h \
zxing/TextUtfEncoding.h \
zxing/WhiteRectDetector.h \
zxing/ZXBigInteger.h \
zxing/ZXConfig.h \
zxing/ZXContainerAlgorithms.h \
zxing/ZXFilesystem.h \
zxing/ZXNullable.h \
zxing/ZXNumeric.h \
zxing/ZXStrConvWorkaround.h \
zxing/ZXTestSupport.h \
zxing/aztec/AZDecoder.h \
zxing/aztec/AZDetector.h \
zxing/aztec/AZDetectorResult.h \
zxing/aztec/AZ