PHP基于phpqrcode类生成二维码的方法详解

PHP QRCode生成二维码 二维条码/二维码(2-dimensionalbarcode)是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的;在代码编制上巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念。一维条码/条形码是由一组粗细不同、黑白(或彩色)相间的条、空及其相应的字符(数字字母)组成的标记,即传统条码。二维条码是用某种特定的几何图形按一定规律在平面(二位方向)上分布的条、空相间的图形来记录数据符号信息。php QRcode生成二维码及电子名片。......... 阅读详情
AI摘要

本文详细介绍如何使用PHPQRCODE库生成二维码,包括基本配置、参数说明及带logo的二维码生成方法。

前期准备:

1.phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/phpqrcode/
2.PHP环境必须开启支持GD2扩展库支持(一般情况下都是开启状态)

方法解读:
下载下来的类文件是一个压缩包,里边包含很多文件和演示程序,我们只需要里边的phpqrcode.php这一个文件就可以生成二维码了。它是一个多个类的集合文件,我们需要用到里边的QRcode类(第2963行)的png()方法(第3090行):

1 public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false)
2 {
3   $enc = QRencode::factory($level, $size, $margin);
4   return $enc->encodePNG($text, $outfile, $saveandprint=false);
5 }

第1个参数 t e x t : 二 维 码 包 含 的 内 容 , 可 以 是 链 接 、 文 字 、 j s o n 字 符 串 等 等 ; 第 2 个 参 数 text:二维码包含的内容,可以是链接、文字、json字符串等等; 第2个参数 text:二维码包含的内容,可以是链接、文字、json字符串等等;第2个参数outfile:默认为false,不生成文件,只将二维码图片返回输出;否则需要给出存放生成二维码图片的文件名及路径;
第3个参数 l e v e l : 默 认 为 L , 这 个 参 数 可 传 递 的 值 分 别 是 L ( Q R E C L E V E L L , 7 第 4 个 参 数 level:默认为L,这个参数可传递的值分别是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%),这个参数控制二维码容错率,不同的参数表示二维码可被覆盖的区域百分比,也就是被覆盖的区域还能识别; 第4个参数 level:默认为L,这个参数可传递的值分别是L(QRE​CLEVELL​,7第4个参数size:控制生成图片的大小,默认为4;
第5个参数 m a r g i n : 控 制 生 成 二 维 码 的 空 白 区 域 大 小 ; 第 6 个 参 数 margin:控制生成二维码的空白区域大小; 第6个参数 margin:控制生成二维码的空白区域大小;第6个参数saveandprint:保存二维码图片并显示出来,$outfile必须传递图片路径;

使用示例:

  1. 生成二维码(生成图片文件)
// 1. 生成原始的二维码(生成图片文件)
    function scerweima($url=''){
        require_once "phpqrcode.php";
        $value = $url; //二维码内容
        $errorCorrectionLevel = 'L'; //容错级别
        $matrixPointSize = 5; //生成图片大小
        //生成二维码图片
        $filename = 'qrcode/'.microtime().'.png';
        if(!is_dir('qrcode')){
            mkdir('qrcode', 0777);
        }
        QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
        $QR = $filename;//已经生成的原始二维码图片文件
        $QR = imagecreatefromstring(file_get_contents($QR));
        //输出图片
        imagepng($QR, 'qrcode.png');
        imagedestroy($QR);
        return '<img src="qrcode.png" alt="使用微信扫描支付">';
    }
    //调用查看结果
    echo scerweima('http://www.baidu.com');
  1. 在生成的二维码中加上logo(生成图片文件).
// 2.生成带logo的二维码
    function scerweima1($url=''){
        require_once 'phpqrcode.php';
        $value = $url;         //二维码内容
        $errorCorrectionLevel = 'H';  //容错级别
        $matrixPointSize = 6;      //生成图片大小
        //生成二维码图片
        $filename = 'qrcode/'.microtime().'.png';
        QRcode::png($value,$filename , $errorCorrectionLevel, $matrixPointSize, 2);
        $logo = 'logo.jpg'; //准备好的logo图片
        $QR = $filename;      //已经生成的原始二维码图
        if (file_exists($logo)) {
            $QR = imagecreatefromstring(file_get_contents($QR));    //目标图象连接资源。
            $logo = imagecreatefromstring(file_get_contents($logo));  //源图象连接资源。
            $QR_width = imagesx($QR);      //二维码图片宽度
            $QR_height = imagesy($QR);     //二维码图片高度
            $logo_width = imagesx($logo);    //logo图片宽度
            $logo_height = imagesy($logo);   //logo图片高度
            $logo_qr_width = $QR_width / 4;   //组合之后logo的宽度(占二维码的1/5)
            $scale = $logo_width/$logo_qr_width;  //logo的宽度缩放比(本身宽度/组合后的宽度)
            $logo_qr_height = $logo_height/$scale; //组合之后logo的高度
            $from_width = ($QR_width - $logo_qr_width) / 2;  //组合之后logo左上角所在坐标点
            /**
             * imagecopyresampled() 将一幅图像(源图象)中的一块正方形区域拷贝到另一个图像中
             */
            //重新组合图片并调整大小
            imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,$logo_qr_height, $logo_width, $logo_height);

        }
        //输出图片
        imagepng($QR, 'qrcode.png');
        imagedestroy($QR);
        imagedestroy($logo);
        return '<img src="qrcode.png" alt="使用微信扫描支付">';
    }
    //调用查看结果
    echo scerweima1('http://www.baidu.com');
  1. 生成二维码(不生成图片文件)
function scerweima2($url=''){
  require_once 'phpqrcode.php';
  $value = $url;         //二维码内容
  $errorCorrectionLevel = 'L';  //容错级别
  $matrixPointSize = 5;      //生成图片大小
  //生成二维码图片
  $QR = QRcode::png($value,false,$errorCorrectionLevel, $matrixPointSize, 2);
}
//调用查看结果
scerweima2('https://www.baidu.com');

转自:https://www.cnblogs.com/wyl0514/p/10917646.html

PHP生成二维码并添加文字(phpqrcode类) 先看效果图 以下是phpqrcode类文件(里面包含字体文件,可直接用) 链接:https://pan.baidu.com/s/1u_3AAFtFxWuRdsCxJtjpyQ 提取码:cy2e 生成二维码加汉字 /* url:二维码保存文件路径 code:二维码图片名 content:二维码下方文字内容(这里存的是一维数组,每个下标对应的每行文字,循环显示) */ public function getQRcode($url, $code, $content){ // 调用php 阅读详情

相关推荐

Php / Thinkphp 之 使用phpqrcode 生成自定义二维码

前言 phpqrcode是一个现成的类文件,看懂类就可以很方便的生成二维码文件。 phpqrcode类文件:点此下载 注意php环境必须开启支持GD2拓展库支持,默认是开启的。 分析 从上文网址下载下来的是一个压缩包,里面包含很多如演示代码。但我们生成二维码只需要phpqrcode.php就行,不需要任何外部文件。 phpqrcode.php是包含多各类的集合文件,我们需要用的是Q...

Daioo 随笔 1534

php有个qrcode类,一个PHP的QRcode类与大家分享

类的代码:define('QR_MODE_NUL', -1);define('QR_MODE_NUM', 0);define('QR_MODE_AN', 1);define('QR_MODE_8', 2);define('QR_MODE_KANJI', 3);define('QR_MODE_STRUCTURE', 4);// Levels of error correction.define('Q...

weixin_30446969的博客 730

phpqrcode生成带logo二维码,logo图标缩放不失真不变形源代码

phpqrcode生成带logo二维码,logo图标缩放不失真不变形源代码

一个PHP的QRcode类,与大家分享

类的代码: View Code <?phpeval(gzinflate(base64_decode('7X1td9s2svDn3nP2PzBZNZJiKRb1ZtmxvY+bOE3u2o5rp9u7N5v1oSTaZqO3UHQi9+W/PzMDgCTIAUjZbrd771VPHYkEBjODwWAwGAz+9B9/+o+vxv5lMPNr1e/OLo7fvjy8OPn+...

1万+

绝对旋转编码器学习笔记(基本原理,与PC通信等,不定期更新中)

前言 最近开始学习编码器相关内容,目的在于搞清楚编码器的原理,与上位机的联系等问题。笔记资料来源为网络,整理的同时也会有一些总结和感悟。由于研究方向需求,主要研究数字旋转编码器。 1.编码器的定义 编码器(encoder)是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。——摘自《百度百科》 通常来说,编码器可以将角度位移、直线位移、转速等物理量转换为电信号。这里的电信号根据不同原理的编码器输出脉冲、二进制数码等不同的类型,下面会提到。 2.编码器的分类 编.

黑化咸鱼的博客 1万+

QT实现串口通信

要实现串口通信,需要知道串口通信需要的信息 主要参数有:波特率、校验位、数据位、停止位、控制流 主要操作有:串口的打开和关闭、刷新设备串口、接发数据、开关显示灯等。 实现效果如图: 最后附赠完整源码。 第一步:在头文件中引入 QtSerialPort 类的两个头文件(必须引入) // 引入串口通信的两个头文件(第一步) #include <QtSerialPort/QSerialPort> // 提供访问串口的功能 #include <QtSerialPo

m0_49456900的博客 6万+

使用PHP二维码生成类库PHP QR Code生成二维码

使用PHP二维码生成类库PHP QR Code生成二维码思路:

ufan94的博客 2240

用Typora画流程图和序列图:Mermaid语法实战教程(含常见报错解决)

本文是一份详细的Typora与Mermaid语法实战教程,教你如何在Markdown文档中高效绘制流程图和序列图。文章涵盖从环境配置、核心语法到复杂图表构建的全过程,并重点解析了常见报错原因与解决方案,助你将可视化图表无缝融入文档工作流。

weixin_29279101的博客 299

PHP使用phpqrcode生成二维码

前期准备: 1.phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/phpqrcode/ 2.PHP环境必须开启支持GD2扩展库支持(一般情况下都是开启状态) 二维码可以用在很多地方只要有url的就需要二维码,今天来用PHP实现生成二维码 public function createTempQrcode($data) { ...

善假于物 667

VS2022下OSG+OSGEARTH开发环境一键配置指南(Win10 x64+CMake自动化构建)

本文详细介绍了在VS2022环境下配置OSG和OSGEARTH开发环境的完整指南,包括软件下载、CMake自动化构建、编译实战及环境验证。通过一键配置脚本和常见问题解决方案,帮助开发者快速搭建3D开发环境,提升开发效率。

weixin_28828243的博客 405

【自动驾驶】汽车智能驾驶计算芯片

本文介绍汽车智能驾驶计算芯片的软硬件要求、 可靠性和安全性要求、 性能要求,和相应的试验方法。除了用于汽车智能驾驶, 其他领域的计算芯片可参照执行。

Mr.Cssust的博客 2631

PHP基于phpqrcode类生成二维码

使用ThinkPHP框架引入phpqrcode类生成二维码后,发现每次必须通过TP框架生成,略显繁琐,打算写一个简单的方法,然后运行php后直接批量生成二维码。方法也简单,直接写个PHP脚本,然后引入phpqrcode类,然后在写个方法直接调用方法即可。 一、前期准备 phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/phpqrcode/ ...

我的博客 559

从零学懂车载 TSN(二):802.1AS、Qbv、Qbu 是如何让 Ethernet “按时发送”的?

假设有两台设备: ECU A 认为: 但 Switch B 认为: 如果我们规定: 问题就来了。ECU:Switch:整个调度立即失效。因此 TSN 要做时间调度,第一件事就是:这就是:IEEE 802.1AS 定义时间敏感网络里的:工程中通常会看到:gPTP也就是:generalized Precision Time Protocol可以先简单理解成: 核心表达:所有 TSN 节点使用共同时间。后面抓包时你会经常遇到: 刚入门时不用急着研究每个 bit。先搞清楚它们解决什么问题。两个设备连接: A 需要知

struggle_22_58的博客 50

PHP使用phpqrcode类生成二维码

需求:不需要将生成的二维码生成图片存储,直接返回到前端页面进行展示? 解决:使用ob缓存进行解决。 phpqrcode类下载地址:https://sourceforge.net/projects/phpqrcode/ 代码解决问题: public function getCode($url=''){ require_once './phpqrcode.php'; $val...

yang725614的博客 317

路径规划 | 图解RRT*算法(附ROS C++/Python/Matlab仿真)

RRT*算法针对传统RRT算法进行了渐进最优改进,在添加节点到搜索树的过程中进行重连选择。本文图解RRT*算法原理,并采用ROS C++、Python、Matlab三种语言实现算法,加深理解

FRIGIDWINTER的博客 9405

手把手教您如何群晖/飞牛NAS等服务器上一键部署洛雪音乐同步服务,手机电脑无缝同步歌单,支持外网访问

🎵 手机电脑歌单不同步?用Docker在群晖/飞牛NAS等服务器上搭个同步服务器, 3分钟搞定 !支持docker-compose一键部署,手机、电脑、平板收藏夹实时同步,外出也能用域名远程访问 ~ ✨

XiaoqiangClub的博客 4605

PHP 基于phpqrcode库类生成二维码

https://www.cnblogs.com/php666cjw/p/13595364.html 生成二维码,需要用到phpqrcode库类,下载地址 https://sourceforge.net/projects/phpqrcode/ 下载后引入到执行的方法中 //引入qrcode库 引入方式有多种 这种不行试其他 require"../vendor/phpqrcode/phpqrcode.php"; //实例化静态类 注意类库名前加\ 具体作用可百度 $qRcode = new \QR

happy10091812的博客 254

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

php 使用phpqrcode类生成二维码

利用php类库phpqrcode来实现 首先下载类库包 下载:phpqrcode下载地址 直接浏览器输出 <?php include "phpqrcode.php"; $value="http://www.test.com"; $errorCorrectionLevel = "L"; $matrixPointSize = "4"; QR

tofrookie的专栏 1347

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

php封装类,phpqrcode生成二维码并保存到服务器

以前也用phpqrcode生成二维码,但是并没有将这个功能进行过封装,因此每次用的时候又要需要重新看文档,重复写一遍,后来觉得太麻烦,为何不将这一些常用的类进行封装,以后用的时候只要关注自身的业务逻辑不挺好吗! 我是基于tp5编写的扩展类,因此如果你也是用这个框架,可以直接将扩展类放在extend目录下即可, 存放目录: 2.引用phpqrcode类,这个类你可以下载:https://s...

wangtianyou343的博客 2103

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

PHPQrcode快速实现二维码的生成

PHPQrcode快速实现二维码的生成 简介 PHPQrcode(点击下载)是一个PHP的文件,里面封装了二维码图片的生成,支持的图片格式有 png,通过参数的配置可以设置二维码的大小、边距、码的颜色、定位点的颜色.使用的话也比较简单,只需要将PHPQrcode.php这个文件引入到待使用的位置,再通过 Qrcode这个类就可以生成二维码了。 参数说明 $qrcod...

GetcharZp的博客 697

php 使用phpqrcode类生成带有logo的二维码 使logo不失真(透明)

在开发中 发现phpqrcode类在加入logo时,如果 logo 是 png 图像带有透明区域时,二维码上都无法正常完美的显示出来 解决方法便是:修改phpqrcode文件中的 QRimage类下的image方法中两个图片生产函数 ImageCreate 改为 imagecreatetruecolor 函数 即可 转载于:https://www.cnblogs.com/LzayCa...

dlfoqv3408的博客 305

thinkphp5框架生成二维码

二话不说,先上代码: 第一中: 不用再本地保存文件,直接在前台页面显示: 这是控制器里面的内容,哦,对啦,首先要下载SDK:.phpqrcode类文件下载,下载地址:https://sourceforge.net/projects/phpqrcode/ 插件只要:下载下来的类文件是一个压缩包,里边包含很多文件和演示程序,我们只需要里边的phpqrcode.php这一个文件就可以生成二维...

weixin_30776545的博客 151
上一篇: dede实现点击使用ajax加载更多数据 (三级分类版本)
下一篇: php 百度富文本编辑器动态添加图片访问路径前缀
if时光重来
博客等级 码龄8年 248粉丝 217原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值