使用QRencode做二维码QR码生成

简介: 使用QRencode做二维码QR码生成
//qr.h
#ifndef QR_H
#define QR_H
#include <qrencode.h>
#include <qimage.h>
#include <qstring.h>
class QR
{
public:
  QR();
  //生产二维码
   QImage produceQR(const QString &info);
public :
  static QImage produceQrTest(const QString &info);
};
#endif // QR_H
//qr.cpp
#include "qr.h"
#include <QPainter>
#include <QImage>
QR::QR()
{
}
QImage  QR::produceQrTest(const QString &info)
{
  
  //放置二维码
  QImage dst;
  //绘制方块大小
  int scale = 4;
  //将字符串转字符集合,同时定义编码格式为UTF8
  QByteArray info_date = info.toUtf8();
  //调用libqrencode库进行编码
  QRcode* qr = QRcode_encodeString(info_date.constData(), 0, QR_ECLEVEL_Q, QR_MODE_8, 1);
  //绘制
  if (qr && qr->width > 0)
  {
    //设置图像大小
    int img_width = qr->width * scale;
    //创建画布
    dst = QImage(img_width, img_width, QImage::Format_Mono);
    //创建油漆工
    QPainter painter(&dst);
    //填充白色背景
    painter.fillRect(0, 0, img_width, img_width, Qt::white);
    //设置画笔
    painter.setPen(Qt::NoPen);
    //设置黑色刷子
    painter.setBrush(Qt::black);
    //绘制二维码
    for (int y = 0; y < qr->width; y++)
    {
      for (int x = 0; x < qr->width; x++)
      {
        //绘制黑块
        if (qr->data[y*qr->width + x] & 1)
        {
          QRect r(x*scale, y*scale, scale, scale);
          painter.drawRect(r);
        }
      }
    }
    QRcode_free(qr);
  }
  return dst;
  
}
//调用
QImage qr = QR::produceQrTest(qstr);
int x = ui->label_QRCode->size().width() - 20;
int y = ui->label_QRCode->size().height() - 20;
QSize size = QSize(x, y);
m_QR_img = qr.scaled(size, Qt::KeepAspectRatio);
ui->label_QRCode->setPixmap(QPixmap::fromImage(m_QR_img));

QRencode库


相关文章
|
21天前
|
文字识别 开发工具
印刷文字识别使用问题之是否可以识别带有文字和二维码的商户码
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
3月前
|
缓存 NoSQL Java
你的码有我的码蠢?
你的码有我的码蠢?
33 0
微信公众号扫码条形码和二维码后用split函数按照条码类型进行截取处理的解决方案
微信公众号扫码条形码和二维码后用split函数按照条码类型进行截取处理的解决方案
59 0
条码二维码输出PDF文件的方法
有些印刷或打印设备是以PDF文件的导入方式来批量打印,Label mx 标签软件可以满足这个要求,支持任何PDF虚拟打印机将整个标签以排版的方式多页输出为一个PDF文件。
155 0
|
API 开发者 微服务
微信扫描登录(生成二维码) | 学习笔记
快速学习 微信扫描登录(生成二维码)
91 0
|
开发工具 计算机视觉
配置zbar识别二维码(转载)
原文地址:http://blog.csdn.net/dcrmg/article/details/52108258  二维码解码器Zbar+VS2012开发环境配置 Zbar条码解码器是一个开源的二维码(包括条形码)解码器,可以识别来至于视频流,图像文件、手持扫码器和视频设备(如摄像头)等二维码识别,支持EAN-13/UPC-A, UPC-E, EAN-8, Code 128, Code 39, QR Code(二维码)等常用编码方式的条形码/二维码。
2485 0
使用ABAP创建QR Code(二维码)
In the previous blog we discuss how to generate QRCode to enable it be scanned via mobile phone. In that solution, the QRCode is generated and stored in a PDF file via ABAP webdynpro framework, we only provide the form template. In fact it is quite easy to adapt the solution to generate the PDF by
使用ABAP创建QR Code(二维码)
|
程序员 C# 图形学
C# 生成二维码,彩色二维码,带有Logo的二维码及普通条形码
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走进他们的内心!    废话少说,咱直接进入正题:    目前来说,比较流行的二维码生成方式有两种:一种是:QrCode.Net和谷歌的Zxing.Net,我个人比较倾向于使用ZXing.Net,今天本篇博客主要讲解Zxing.Net的使用。
1944 0