当前位置: 首页 > news >正文

网站开发挣钱吗漫画app软件定制开发

网站开发挣钱吗,漫画app软件定制开发,深圳龙岗区住房和建设局网站,优创意设计平台Qt本地生成二维码-第三方库Libqrencode Chapter1 Qt本地生成二维码-第三方库Libqrencode一、功能简介二、本地生成二维码三、在线生成二维码 Chapter2 Qt生成二维码图片方法QRCode二维码简介如何选定QR码版本#xff1f;主要方法(1) 下载qrencode源码(2) 将qrencode源码移植到… Qt本地生成二维码-第三方库Libqrencode Chapter1 Qt本地生成二维码-第三方库Libqrencode一、功能简介二、本地生成二维码三、在线生成二维码 Chapter2 Qt生成二维码图片方法QRCode二维码简介如何选定QR码版本主要方法(1) 下载qrencode源码(2) 将qrencode源码移植到工程中(3) 修改移植文件 Chapter1 Qt本地生成二维码-第三方库Libqrencode 原文链接https://blog.csdn.net/hhy321/article/details/120245679 一、功能简介 QR码全称为快速响应矩阵码英语Quick Response Code是二维条码的一种于1994年由日本DENSO WAVE公司发明。QR来自英文Quick Response的缩写即快速反应因为发明者希望QR码可以让其内容快速被解码。QR码使用四种标准化编码模式数字字母数字字节二进制和汉字来存储数据。QR码最常见于日本为目前日本最流行的二维空间条码。QR码比较普通条码可以存储更多数据也无需要像普通条码般在扫描时需要直线对准扫描仪。因此其应用范围已经扩展到包括产品跟踪物品识别文档管理营销等方面。 二、本地生成二维码 1.第三方库Libqrencode 官网https://fukuchi.org/works/qrencode/ Libqrencode 是一个快速紧凑的库用于在 QR 码符号中编码数据这是一个 2D 符号系统可由方便的终端如带 CCD 的手机进行扫描。QR 码容量高达 7000 位或 4000 个字符具有很高的鲁棒性。 Libqrencode 接受一个字符串或数据块列表然后在 QR Code 符号中编码为位图数组。当其他 QR 码应用程序生成图像文件时使用 libqrencode 允许应用程序直接从原始位图数据中呈现 QR 码符号。此库还包含命令行实用程序输出各种格式的 QR 码图像。 去官网下载源码包使用最新的稳定版本qrencode-4.1.0新建一个Qt Widgets Application工程qrcodeDemo然后执行以下步骤 将源码中的config.h.in文件修改成config.h将qrencode源码中的(*.h *.c)加入到工程中右键添加现有文件在工程的pro文件中添加宏定义DEFINES HAVE_CONFIG_H在config.h中重新定义 MAJOR_VERSION、MICRO_VERSION、MINOR_VERSION、VERSION重新定义的方法找到#undef MAJOR_VERSION位置在其下面定义#define MAJOR_VERSION 1其他几个也这么定义 2.编写Qt程序代码生成本地二维码 1新建Qt项目工程 2将第三方库的代码复制到一个文件夹里放到上一步新建的项目文件夹里。 3项目文件.pro 添加设置 DEFINES HAVE_CONFIG_H INCLUDEPATH qrcode4主窗口里添加头文件引用 #include QPainter #include qrcode/qrencode.h5核心代码如下 void MainWindow::on_pushButton_local_clicked() {QString strUrl ui-textEdit_url-toPlainText();QRcode *qrcode;qrcode QRcode_encodeString(strUrl.toStdString().c_str(), 2, QR_ECLEVEL_Q, QR_MODE_8, 1);qint32 temp_width 500;qint32 temp_height 500;qDebug() temp_width temp_width ;temp_height temp_height;qint32 qrcode_width qrcode-width 0 ? qrcode-width : 1;double scale_x (double)temp_width / (double)qrcode_width;double scale_y (double)temp_height / (double)qrcode_width;int offset 14;QImage mainimg QImage(temp_width offset * 2, temp_height offset * 2, QImage::Format_ARGB32);QPainter painter(mainimg);QColor background(Qt::white);painter.setBrush(background);painter.setPen(Qt::NoPen);painter.drawRect(offset, offset, temp_width, temp_height);QColor foreground(Qt::black);painter.setBrush(foreground);for (qint32 y 0; y qrcode_width; y){for (qint32 x 0; x qrcode_width; x){unsigned char b qrcode-data[y*qrcode_width x];if (b 0x01){QRectF r(offset x * scale_x, offset y * scale_y, scale_x, scale_y);painter.drawRects(r, 1);}}}painter.setPen( QColor(0, 0, 255));painter.drawText(temp_width/2, temp_heightoffset*2-2, strUrl);QPixmap mainmap QPixmap::fromImage(mainimg);QLabel* m_pQrlabel new QLabel();m_pQrlabel-setWindowFlags(Qt::WindowCloseButtonHint);m_pQrlabel-setAttribute(Qt::WA_QuitOnClose, false);m_pQrlabel-setPixmap(mainmap);m_pQrlabel-setVisible(true);m_pQrlabel-setToolTip(strUrl);m_pQrlabel-setWindowTitle(本地生成二维码 strUrl);mainmap.save(QCoreApplication::applicationDirPath() \\qrcode_local.jpg,Q_NULLPTR, 100); }6运行结果显示如下 三、在线生成二维码 1.浏览器chrome 谷歌浏览器chrome自身支持生成二维码了。不需要额外安装插件已测试。 Chapter2 Qt生成二维码图片方法 原文链接https://blog.csdn.net/qq_44675660/article/details/124955291 QRCode二维码简介 QR码是日本DENSO WAVE INCORPORATED公司在60年代研发出的一款开放公开的二维码目前该公司全面公开了QR码的相关标准不行使就QR码相关的专利权且大力推广QR码在各行各业的使用以至目前QR码得到了广泛应用许多国际标准化组织将其纳入标准。下面介绍一下开发过程中使用QR码可能涉及的主要参数 二维码的大小21码元×21码元~177码元×177码元以每边4码元为单位递增二维码大小由码的版本决定二维码所能包含的信息量与码的大小有关。 QR码的版本QR码设有1到40的不同版本种类)每个版本都具备固有的码元结构(码元数)。码元是指构成QR码的方形黑白点。)“码元结构”是指二维码中的码元数。从版本1(21码元×21码元)开始在纵向和横向各自以4码元为单位递增一直到版本40(177码元×177码元)。 QR码纠错等级QR码具有“纠错功能”。即使编码变脏或破损也可自动恢复数据。这一“纠错能力”具备4个级别级别L、级别M、级别Q、级别H用户可根据使用环境选择相应的级别. 如何选定QR码版本 如何选择适合自己的QR码或查看QR码的具体参数和介绍可以参考QR的官网QRcode.comDENSO WAVE 主要方法 本文主要讲解使用开源的QR code库在Qt程序中生成二维码其中我们主要用到的是一个开源的QR编码库qrencode。我们可以将qrencode以添加外库的方式提交到工程中使用也可以将qrencode的源码添加到工程中编译使用我们采用第二种方法通过将qrencode的源码移植到我们的Qt程序中实现二维码的显示。 步骤 (1) 下载qrencode源码 我们到OpenPKG Project: Download下载qrencode的开源程序我下的是qrencode-4.1.1.tar.gz qrencode下载地址为OpenPKG Project: Download (2) 将qrencode源码移植到工程中 1新建一个Qt工程将qrencode-4.1.1.tar.gz解压后根目录内的所有.c 和.h文件拷贝到Qt工程中。如图所示 2将qrencode源码中的config.h.in文件修改成config.h加入工程将刚刚添加到Qt工程中的qrenc.c文件移出工程因为该文件是源代码的主函数与Qt中的相互冲突将会导致程序异常退出。添加完后工程中是这样子 (3) 修改移植文件 1在QT的.pro文件中添加全局宏定义 DEFINES HAVE_CONFIG_H2在config.h文件末尾重新定义宏 #define MAJOR_VERSION 1 #define MICRO_VERSION 1 #define MINOR_VERSION 1 #define VERSION 14使用 我这里是创建了一个继承QWidget的Widget主窗口在widget.h中添加上如下两句函数声明 void GenerateQRcode(QString tempstr, QLabel *label); void GenerateQRcode(QString tempstr, QLabel *label, const QString logo, float scale);在widget.c中添加了如下程序这两个程序是重载函数提供了生成并画出二维码图片的接口其中第一个函数是单独生成二维码第二个函数可以在二维码中间添加图片。 /*trmpst:二维码包含的信息* label显示二维码的QLabel控件* */ void Widget::GenerateQRcode(QString tempstr, QLabel *label) {QRcode *qrcode; //二维码数据//将QString转化为const char * |2-QR码版本为2 | QR_ECLEVEL_Q 容错等级 |QR_MODE_8 八字节数据 |1-区分大小写qrcode QRcode_encodeString(tempstr.toStdString().c_str(), 2, QR_ECLEVEL_Q, QR_MODE_8, 1);qint32 temp_widthlabel-width(); //显示二维码所用的QLabel大小也是后面显示二维码图片的大小qint32 temp_heightlabel-height();qint32 qrcode_width qrcode-width 0 ? qrcode-width : 1; //生成的二维码宽高正方形的宽度高度double scale_x (double)temp_width / (double)qrcode_width; //二维码图片的缩放比例double scale_y (double) temp_height /(double) qrcode_width;QImage mainimgQImage(temp_width,temp_height,QImage::Format_ARGB32);QPainter painter(mainimg);QColor background(Qt::white);painter.setBrush(background);painter.setPen(Qt::NoPen);painter.drawRect(0, 0, temp_width, temp_height);QColor foreground(Qt::black);painter.setBrush(foreground);for( qint32 y 0; y qrcode_width; y )//qrcode-data是一个存了qrcode_width*qrcode_width个数据的一维数组{ //这里是把这个一维数组以每行qrcode_width个数据以二维数组的形式表现出来for(qint32 x 0; x qrcode_width; x){unsigned char b qrcode-data[y * qrcode_width x];if(b 0x01){//根据二维码中黑白点1/0在QLabel上以缩放比例画出二维码QRectF r(x * scale_x, y * scale_y, scale_x, scale_y);painter.drawRects(r, 1);}}}QPixmap mainmapQPixmap::fromImage(mainimg);label-setPixmap(mainmap);label-setVisible(true); }/*trmpst:二维码包含的信息* label显示二维码的QLabel控件* logo二维码中间显示的图片* scale中间图片的缩放比例* */ void Widget::GenerateQRcode(QString tempstr, QLabel *label, const QString logo, float scale) {GenerateQRcode(tempstr, label);int width label-width();int height label-height();int logo_width width *scale;int logo_height height * scale;int logo_x (width - logo_width) / 2;int logo_y (width - logo_height) / 2;const QPixmap *pix label-pixmap();QPixmap temppix(logo);QPixmap pix1 temppix.scaled(QSize(logo_width, logo_height), Qt::KeepAspectRatio);QPixmap pix2(width, height);QPainter *painter new QPainter(pix2);QColor background(Qt::white);painter-setBrush(background);painter-setPen(Qt::NoPen);painter-drawRect(0, 0, width, height);QColor foreground(Qt::black);painter-setBrush(foreground);painter-drawPixmap(0,0, width, height, *pix);painter-drawPixmap(logo_x,logo_y, logo_width, logo_height, pix1);label-setPixmap(pix2);delete painter; }这里以如下程序为例 QLabel *lab1 new QLabel(this);lab1-setGeometry(10,100,200,200);QLabel *lab2 new QLabel(this);lab2-setGeometry(300,100,200,200);GenerateQRcode(123456789, lab1, :Imag/jiasu.png,0.2);GenerateQRcode(123456789, lab2);
http://www.dnsts.com.cn/news/147789.html

相关文章:

  • 河北中太建设集团有限公司网站重庆vr制作
  • 注册网站模板施工企业工作分解结构
  • 建设部网站电话wordpress停用react
  • 残联网站建设白酒进货渠道网
  • 哪里找做网站的客户推广网站广告
  • 网站如何导入织梦cms应用制作器
  • 如何为网站做seo体检网站建设过程总结
  • 软件网站建设酒店协会网站集静态模板
  • 网站建设公司教程icp对网站内容
  • 郑州网站哪家好怎样进行站点优化
  • 长春自助建站模板google框架一键安装
  • 网站锚文本链接怎么做腾讯企点怎么删除好友
  • 备案 网站起名新手建什么网站赚钱
  • 大学网页制作与网站建设有没有悬赏做ppt的网站
  • 巅峰网站建设扬州网站建设link5
  • 可信网站认证 服务中心建筑八大员报名官网
  • 有记事本做简易网站手表网站哪个最好知乎
  • asp评价网站开发文档二手交易网站开发系统
  • 新华网站建设免费推广的渠道有哪些
  • 学校网站怎么建设威县做网站报价
  • 什么是门户类型的网站营销型网站网站
  • 网站添加 备案wordpress 关闭顶部
  • 海山免费网站建设建设一个电商网站的流程图
  • 网页设计公司婚庆网站模板下载app公司开发价格
  • 网站建设哪些职位陇南网站网站建设
  • 六安网站建设培训上海外贸公司是国企吗
  • 大型网站建设开发设计公司品牌微信网站定制
  • 网站建设 内容wordpress 同步qq空间
  • 域名到期换个公司做网站it培训机构出来的好找工作吗
  • 厦门哪里有教网站建设网站编程 外包类型