基于Qt的二维码生成与识别

这篇具有很好参考价值的文章主要介绍了基于Qt的二维码生成与识别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于Qt的二维码生成与识别

一、获取QZxing开源库

1.通过封装的QZxing开源库生成和识别二维码,下载地址:GitCode - 开发者的代码家园https://gitcode.com/mirrors/ftylitak/qzxing/tree/master。

2.下载解压后,使用Qt Creator xx(qt编程软件)打开src目录下的QZXing.pro文件并运行代码,在编译的debug路径下获取QZXing3.dll和libQZXing3.a库文件。

二、添加封装的库文件

1.在.pro文件夹下添加库文件qzxing文件夹,存放QZXing3.dll和libQZXing3.a库文件2个。

2.添加头文件,可以直接拷贝到.pro同目录,即拷贝QZXing.h和QZXing_global.h。

基于Qt的二维码生成与识别,Qt杂记,qt,命令模式,开发语言

3.在.pro文件中添加如下圈红的部分。

基于Qt的二维码生成与识别,Qt杂记,qt,命令模式,开发语言

三、二维码生成与识别程序

1.添加头文件:将QZXing.h和QZXing_global.h头文件条件到新建的程序中

基于Qt的二维码生成与识别,Qt杂记,qt,命令模式,开发语言

2.UI界面设计

基于Qt的二维码生成与识别,Qt杂记,qt,命令模式,开发语言

3.主程序设计代码--通过按钮触发信号槽进行演示,即创建3个按钮的.CPP程序文件,详见代码内容:

//mainwindow.cpp文件

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include <QImage>
#include <QDebug>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

//3点击按钮 识别二维码内容
void MainWindow::on_pushButton_clicked()
{
    //2.识别二维码
    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;
    }
    qDebug()<<"图片不为空";
    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);
    qDebug()<<"info"<<info;
//    ui->lineEdit_2->setText(info);
    ui->textEdit_2->setPlainText(info);
}

//1点击按钮 获取单行文本内容生成二维码
void MainWindow::on_pushButton_2_clicked()
{
    //1.生成二维码
    QString text = ui->lineEdit->text();
    qDebug()<<"text"<<text;
    if(text.isEmpty())
    {
        qDebug()<<"text.isEmpty()"<<text.isEmpty();
        return;
    }
    qDebug()<<"text.isEmpty()********"<<text.isEmpty();
    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,有点变形,太丑

    qDebug()<<img;

    ui->label->setPixmap(QPixmap::fromImage(img));
}


//2点击按钮 获取多行文本内容生成二维码
void MainWindow::on_pushButton_3_clicked()
{
    //1.生成二维码
    QString text = ui->textEdit->toPlainText();
    qDebug()<<"text"<<text;
    if(text.isEmpty())
    {
        qDebug()<<"text.isEmpty()"<<text.isEmpty();
        return;
    }
    qDebug()<<"text.isEmpty()********"<<text.isEmpty();
    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,有点变形,太丑

    qDebug()<<img;

    ui->label->setPixmap(QPixmap::fromImage(img));
}

四、Demo效果

1.单行文本:二维码生成与识别

基于Qt的二维码生成与识别,Qt杂记,qt,命令模式,开发语言

2.多行文本:二维码生成与识别

基于Qt的二维码生成与识别,Qt杂记,qt,命令模式,开发语言

参考:Qt实现二维码生成和识别_qt 识别二维码-CSDN博客文章来源地址https://www.toymoban.com/news/detail-859736.html

到了这里,关于基于Qt的二维码生成与识别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于ZXing.NET实现的二维码生成和识别客户端

    ZXing.Net 的一个可移植软件包,是一个开源的、多格式的1D/2D条形码图像处理库,最初是用Java实现的。已经过大量优化和改进,它已经被手动移植。它与.Net 2.0、.Net 3.5、.Net 4.x、.Net 5.x、.Net 6.x、.Net 7.x、Windows RT类库和组件、UWP、.Net Standard 1.x和2.0x、.Net Core App 3.x、Silverlight 4、

    2024年02月08日
    浏览(46)
  • AI生成二维码Stable diffusion生成可识别二维码【附完整教程】&【附完整案例】

    最近的炫酷QR比较火,所以今天给大家分享一下如何实现。首先我们知道QR二维码已经改变了信息的共享和获取方式。但是,QR码的视觉外观可能并不总是符合设计或艺术品的美学要求。为了解决这个问题,ControlNet for Stable Diffusion的工具在Stable Diffusion上可以将QR二维码信息隐藏

    2024年02月16日
    浏览(51)
  • java生成、识别条形码和二维码

    使用 zxing 开源库 Zxing主要是Google出品的,用于识别一维码和二维码的第三方库 主要类: BitMatrix 位图矩阵 MultiFormatWriter 位图编写器 MatrixToImageWriter 写入图片 可以生成、识别条形码和二维码 内置三种尺寸: enum Size {SMALL, MIDDLE, BIG} 依赖 将宽度不等的多个黑条和白条,按照一定

    2024年02月08日
    浏览(52)
  • 计算机竞赛 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

    🔥 优质竞赛项目系列,今天要分享的是 基于机器学习的二维码识别检测 - opencv 二维码 识别检测 机器视觉 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 物体检测就是对数字图像中一类特定的物体的

    2024年02月11日
    浏览(64)
  • 计算机毕设 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

    今天学长向大家介绍一个机器视觉的毕设项目,二维码 / 条形码检测与识别 基于机器学习的二维码识别检测 - opencv 二维码 识别检测 机器视觉 物体检测就是对数字图像中一类特定的物体的位置进行自动检测。基本的检测框架有两种: 一种是以滑动窗口为单位对图像进行扫描

    2024年02月10日
    浏览(53)
  • 互联网加竞赛 基于机器视觉的二维码识别检测 - opencv 二维码 识别检测 机器视觉

    🔥 优质竞赛项目系列,今天要分享的是 基于机器学习的二维码识别检测 - opencv 二维码 识别检测 机器视觉 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-senior/postgraduate 物体检测就是对数字图像中一类特定的物体的

    2024年01月18日
    浏览(74)
  • 前端自动生成二维码并长按识别跳转 Vue

    下载arale-qrcode依赖: 引用依赖: 代码部分: Learning is like the fennel, but without its increase, it has its own advantages.

    2024年02月20日
    浏览(49)
  • OpenCV中QR二维码的生成与识别(CIS摄像头解析)

    QR(Quick Response) 属于二维条码的一种,意思是快速响应的意思。QR码不仅信息容量大、可靠性高、成本低,还可表示汉字及图像等多种文字信息、其保密防伪性强而且使用非常方便。更重要的是QR码这项技术是 开源的 ,在移动支付、电影票、电子会员卡等场景以及很多的产品上

    2024年02月11日
    浏览(40)
  • OpenCv案例(十): 基于OpenCvSharp识别二维码

    1:二维码在工业和工作生活中应用广泛,下面基于OpenCvSharp识别图像中二维码; 2:函数:OpenCvSharp中, QRCodeDetector  有两个相关API分别实现二维码检测与二维码解析。           public string DetectAndDecode(InputArray img, out Point2f[] points, OutputArray straightQrcode = null); 其中:      

    2024年02月11日
    浏览(41)
  • HarmonyOS学习路之开发篇—AI功能开发(二维码生成及文字识别)

    为应用提供丰富的AI(Artificial Intelligence)能力,支持开箱即用。开发者可以灵活、便捷地选择AI能力,让应用变得更加智能。 已开放的AI能力如下表所示: 能力 简介 二维码生成 根据开发者给定的字符串信息和二维码图片尺寸,返回相应的二维码图片字节流。调用方可以通过

    2024年02月11日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包