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 相关文章推荐
DEDE采集大师官方留后门的删除办法
Jan 08 PHP
PHP中is_file不能替代file_exists的理由
Mar 04 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 PHP
thinkphp常见路径用法分析
Dec 02 PHP
完美解决thinkphp验证码出错无法显示的方法
Dec 09 PHP
php中的动态调用实例分析
Jan 07 PHP
学习PHP的数组总结【经验】
May 05 PHP
PHP防止图片盗用(盗链)的方法小结
Nov 11 PHP
PHP实现的一致性Hash算法详解【分布式算法】
Mar 31 PHP
php防止表单重复提交实例讲解
Feb 11 PHP
PHP htmlspecialchars()函数用法与实例讲解
Mar 08 PHP
PHP网站常见安全漏洞,及相应防范措施总结
Mar 01 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
JAVA/JSP学习系列之四
2006/10/09 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
2012/08/01 PHP
Yii2学习笔记之汉化yii设置表单的描述(属性标签attributeLabels)
2017/02/07 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
2013/08/02 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
2015/06/23 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
2017/07/13 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
Vue filter介绍及详细使用
2018/04/04 Javascript
原生JS实现的自动轮播图功能详解
2018/12/28 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
深入理解Django中内置的用户认证
2017/10/06 Python
对pandas中to_dict的用法详解
2018/06/05 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
python 进程间数据共享multiProcess.Manger实现解析
2019/09/23 Python
Python使用matplotlib绘制Logistic曲线操作示例
2019/11/28 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
Python time库基本使用方法分析
2019/12/13 Python
Python多线程实现支付模拟请求过程解析
2020/04/21 Python
惠普加拿大在线商店:HP加拿大
2017/09/15 全球购物
New Balance德国官方网站:购买鞋子和服装
2019/08/31 全球购物
函数指针的定义是什么
2016/08/14 面试题
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
法律专业个人实习自我鉴定
2013/09/23 职场文书
物流专业大学生的自我鉴定
2013/11/13 职场文书
写求职信有什么意义
2014/02/17 职场文书
幼儿园六一儿童节主持节目串词
2014/03/21 职场文书
请假条怎么写
2014/04/10 职场文书
少先队活动总结
2014/08/29 职场文书
隐形的翅膀观后感
2015/06/10 职场文书
vue特效之翻牌动画
2022/04/20 Vue.js