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 相关文章推荐
PHP编程中八种常见的文件操作方式
Nov 19 PHP
攻克CakePHP系列三 表单数据增删改
Oct 22 PHP
php执行sql语句的写法
Mar 10 PHP
PHP swfupload图片上传的实例代码
Sep 30 PHP
PHP+Mysql实现多关键字与多字段生成SQL语句的函数
Nov 05 PHP
PHP实现的下载远程图片自定义函数分享
Jan 28 PHP
一个完整的php文件上传类实例讲解
Oct 27 PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 PHP
一个实用的php验证码类
Jul 06 PHP
PHP针对伪静态的注入总结【附asp与Python相关代码】
Aug 01 PHP
PHP基于面向对象实现的留言本功能实例
Apr 04 PHP
Yii2处理密码加密及验证的方法
May 12 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 构造函数construct的前下划线是双的_
2009/12/08 PHP
PHP中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
php addslashes 利用递归实现使用反斜线引用字符串
2013/08/05 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
PHPStorm+XDebug进行调试图文教程
2016/06/13 PHP
Zend Framework校验器Zend_Validate用法详解
2016/12/09 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
深入探讨JavaScript、JQuery屏蔽网页鼠标右键菜单及禁止选择复制
2014/06/10 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
JS 封装父页面子页面交互接口的实例代码
2019/06/25 Javascript
vscode 插件开发 + vue的操作方法
2020/06/05 Javascript
跟老齐学Python之Import 模块
2014/10/13 Python
Python 实现链表实例代码
2017/04/07 Python
Python多进程池 multiprocessing Pool用法示例
2018/09/07 Python
Python关于excel和shp的使用在matplotlib
2019/01/03 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
python安装scipy的步骤解析
2019/09/28 Python
python 基于opencv去除图片阴影
2021/01/26 Python
CSS的background属性及CSS3的背景图片设置总结
2016/06/13 HTML / CSS
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
DC Shoes俄罗斯官网:美国滑板鞋和服饰品牌
2020/08/19 全球购物
我的动漫时代的创业计划书范文
2014/01/27 职场文书
函授本科自我鉴定
2014/02/04 职场文书
119消防日活动总结
2014/08/29 职场文书
2014年学校工作总结
2014/11/20 职场文书
九寨沟导游词
2015/02/02 职场文书
团结友爱主题班会
2015/08/13 职场文书
Nginx 负载均衡是什么以及该如何配置
2021/03/31 Servers
maven依赖的version声明控制方式
2022/01/18 Java/Android