使用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库


相关文章
|
6月前
|
存储
使用Zint库生成一维码/条形码
使用Zint库生成一维码/条形码
|
7月前
|
缓存 NoSQL Java
你的码有我的码蠢?
你的码有我的码蠢?
47 0
|
7月前
|
存储 传感器 Java
格雷码(Gray Code)
格雷码(Gray Code)是一种二进制编码方式,它使用两种不同状态的信号(通常为 0 和 1)来表示二进制位。与普通的二进制编码不同,格雷码相邻的两个二进制位之间只相差一个比特。例如,对于 4 位二进制数,格雷码可以是 0000、0001、0011、0100、0101、0110、1000、1001、1010、1011、1100、1101、1110 和 1111。
1620 1
微信公众号扫码条形码和二维码后用split函数按照条码类型进行截取处理的解决方案
微信公众号扫码条形码和二维码后用split函数按照条码类型进行截取处理的解决方案
75 0
|
Java Maven
让一句话生成一张二维码图片
让一句话生成一张二维码图片
|
程序员 C# 图形学
C# 生成二维码,彩色二维码,带有Logo的二维码及普通条形码
每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客!当然,希望将来的一天,某位老板看到此博客,给你的程序员职工加点薪资吧!因为程序员的世界除了苦逼就是沉默。我眼中的程序员大多都不爱说话,默默承受着编程的巨大压力,除了技术上的交流外,他们不愿意也不擅长和别人交流,更不乐意任何人走进他们的内心!    废话少说,咱直接进入正题:    目前来说,比较流行的二维码生成方式有两种:一种是:QrCode.Net和谷歌的Zxing.Net,我个人比较倾向于使用ZXing.Net,今天本篇博客主要讲解Zxing.Net的使用。
1987 0
如何将链接生成二维码或者二维码图片输出到console?
qrcode2console github地址 链接生成二维码输出到console或者是二维码图片输出到console 安装 go get -u github.com/Han-Ya-Jun/qrcode2console 示例 func TestNewQRCode2ConsoleWithUrl(t *testing.
2254 0
QR Data Reconstructor-kali下视频和二维码解析
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396736 ...
978 0