Thinkphp3.2.3整合phpqrcode生成带logo的二维码


Posted in PHP onJuly 21, 2016

Thinkphp中没有二维码相关的库,因此我们可以通过整合phpqrcode来完成生成二维码的功能。

下载phpqrcode

下载地址:http://phpqrcode.sourceforge.net/

整合到Thinkphp框架

在“ThinkPHP\Library\Vendor\”下新建目录phpqrcode,将压缩包内容解压到该文件夹下。

调用phpqrcode生成二维码

在IndexController控制器下添加如下方法:

public function qrcode($url="www.baidu.com",$level=3,$size=4)
  {
       Vendor('phpqrcode.phpqrcode');
       $errorCorrectionLevel =intval($level) ;//容错级别 
       $matrixPointSize = intval($size);//生成图片大小 
       //生成二维码图片 
       $object = new \QRcode();
       $object->png($url, false, $errorCorrectionLevel, $matrixPointSize, 2);  
  }

访问:http://127.0.0.1/Index/qrcode即可看到生成的二维码。

生成带logo的二维码

先调用phpqrcode生成一张二维码,再使用php的image相关函数将logo图片添加到生成的二维码图片上。

include 'phpqrcode.php';  
$value = 'http://www.cnblogs.com/txw1958/'; //二维码内容  
$errorCorrectionLevel = 'L';//容错级别  
$matrixPointSize = 6;//生成图片大小  
//生成二维码图片  
QRcode::png($value, 'qrcode.png', $errorCorrectionLevel, $matrixPointSize, 2);  
$logo = 'logo.png';//准备好的logo图片  
$QR = 'qrcode.png';//已经生成的原始二维码图  

if ($logo !== FALSE) {  
  $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 / 5;  
  $scale = $logo_width/$logo_qr_width;  
  $logo_qr_height = $logo_height/$scale;  
  $from_width = ($QR_width - $logo_qr_width) / 2;  
  //重新组合图片并调整大小  
  imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,  
  $logo_qr_height, $logo_width, $logo_height);  
}  
//输出图片  
imagepng($QR, 'helloweixin.png');  
echo '<img src="helloweixin.png">';

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
拼音码表的生成
Oct 09 PHP
PHP的面试题集
Nov 19 PHP
在VS2008中编译MYSQL5.1.48的方法
Jul 03 PHP
php Ubb代码编辑器函数代码
Jul 05 PHP
PHP使用DOMDocument类生成HTML实例(包含常见标签元素)
Jun 25 PHP
使用 PHPStorm 开发 Laravel
Mar 24 PHP
php按单词截取字符串的方法
Apr 07 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 PHP
PHP用FTP类上传文件视频等的简单实现方法
Sep 23 PHP
php中照片旋转 (orientation) 问题的正确处理
Feb 16 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
Feb 23 PHP
微信随机生成红包金额算法php版
Jul 21 #PHP
PHP简单读取PDF页数的实现方法
Jul 21 #PHP
基于PHP微信红包的算法探讨
Jul 21 #PHP
php中preg_replace_callback函数简单用法示例
Jul 21 #PHP
PHP获取客户端及服务器端IP的封装类
Jul 21 #PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
Jul 21 #PHP
PHP获取当前文件的父目录方法汇总
Jul 21 #PHP
You might like
怎样在UNIX系统下安装php3
2006/10/09 PHP
PHP6 先修班 JSON实例代码
2008/08/23 PHP
PHP采集腾讯微博的实现代码
2012/01/19 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
php文件操作之文件写入字符串、数组的方法分析
2019/04/15 PHP
Firefox下提示illegal character并出现乱码的原因
2010/03/25 Javascript
javascript下数值型比较难点说明
2010/06/07 Javascript
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
JavaScript中的pow()方法使用详解
2015/06/15 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
webpack+vue.js实现组件化详解
2016/10/12 Javascript
JS 调用微信扫一扫功能
2016/12/22 Javascript
js 性能优化之快速响应的用户界面
2017/02/15 Javascript
详解vue的数据binding绑定原理
2017/04/12 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
2018/10/18 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
JavaScript提升机制Hoisting详解
2019/10/23 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
vue实现登录拦截
2020/06/29 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
Python 快速实现CLI 应用程序的脚手架
2017/12/05 Python
Python利用matplotlib.pyplot绘图时如何设置坐标轴刻度
2018/04/09 Python
python安装scipy的步骤解析
2019/09/28 Python
Pandas实现dataframe和np.array的相互转换
2019/11/30 Python
PyQT5 emit 和 connect的用法详解
2019/12/13 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
python输出数学符号实例
2020/05/11 Python
定义一结构体数组表示分数,并求两个分数相加之和
2013/06/11 面试题
理工类毕业自我鉴定
2014/02/20 职场文书
五水共治捐款倡议书
2014/05/14 职场文书
多属性、多分类MySQL模式设计
2021/04/05 MySQL
MySQL约束超详解
2021/09/04 MySQL