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 相关文章推荐
Zend引擎的发展 [15]
Oct 09 PHP
PHP 可阅读随机字符串代码
May 26 PHP
php 数组的指针操作实现代码
Feb 08 PHP
从PHP的源码中深入了解stdClass类
Apr 18 PHP
php将字符串全部转换成大写或者小写的方法
Mar 17 PHP
PHP下载生成的csv文件及问题总结
Aug 06 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
Aug 17 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
Jul 04 PHP
PHP字典树(Trie树)定义与实现方法示例
Oct 09 PHP
在Laravel5中正确设置文件权限的方法
May 22 PHP
php使用redis的有序集合zset实现延迟队列应用示例
Feb 20 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
php的ajax框架xajax入门与试用介绍
2010/12/19 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
PHP中fwrite与file_put_contents性能测试代码
2013/08/02 PHP
php使用正则过滤js脚本代码实例
2014/05/10 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
PHP中new static()与new self()的比较
2016/08/19 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
php表单文件iframe异步上传实例讲解
2017/07/26 PHP
js加强的经典分页实例
2013/03/15 Javascript
jquery 实现密码框的显示与隐藏示例代码
2013/09/18 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
JS填写银行卡号每隔4位数字加一个空格
2016/12/19 Javascript
jquery select插件异步实时搜索实例代码
2017/10/20 jQuery
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
JavaScript去掉数组重复项的方法分析【测试可用】
2018/07/19 Javascript
在vue中利用v-html按分号将文本换行的例子
2019/11/14 Javascript
原生js canvas实现鼠标跟随效果
2020/08/02 Javascript
微信小程序自定义支持图片的弹窗
2020/12/21 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
Django中如何防范CSRF跨站点请求伪造攻击的实现
2019/04/28 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
django ORM之values和annotate使用详解
2020/05/19 Python
Python 私有属性和私有方法应用场景分析
2020/06/19 Python
HTML5新标签兼容——&gt; 的两种方法
2018/09/12 HTML / CSS
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
庆七一活动方案
2014/01/25 职场文书
爱心活动计划书
2014/04/26 职场文书
商务邀请函
2015/01/30 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
公积金具结保证书
2015/05/11 职场文书
代理词怎么写
2015/05/25 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
MySQL时区造成时差问题
2022/04/13 MySQL