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下MAIL的另一解决方案
Oct 09 PHP
php smarty模版引擎中变量操作符及使用方法
Dec 11 PHP
PHP5中新增stdClass 内部保留类
Jun 13 PHP
php购物车实现代码
Oct 10 PHP
解析php file_exists无效的解决办法
Jun 26 PHP
浅析PHP中的UNICODE 编码与解码
Jun 29 PHP
如何利用PHP执行.SQL文件
Jul 05 PHP
php+mysql实现的二级联动菜单效果详解
May 10 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
Oct 06 PHP
PHP实现数据库的增删查改功能及完整代码
Apr 18 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
Jun 13 PHP
Laravel 框架返回状态拦截代码
Oct 18 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
解析thinkphp import 文件内容变量失效的问题
2013/06/20 PHP
PHP实现数字补零功能的2个函数介绍
2014/05/12 PHP
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
JavaScript/Js脚本处理html元素的自定义属性解析(亲测兼容Firefox与IE)
2013/11/25 Javascript
JS Loading功能的简单实现
2013/11/29 Javascript
兼容IE、firefox以及chrome的js获取时间(getFullYear)
2014/07/04 Javascript
实例详解jQuery Mockjax 插件模拟 Ajax 请求
2016/01/12 Javascript
vue实现表格数据的增删改查
2017/07/10 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
2018/03/13 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
vue实现菜单切换功能
2019/05/08 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
[46:23]OG vs EG 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
python基于Tkinter库实现简单文本编辑器实例
2015/05/05 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
Python随机生成均匀分布在三角形内或者任意多边形内的点
2017/12/14 Python
Tornado 多进程实现分析详解
2018/01/12 Python
python并发编程多进程之守护进程原理解析
2019/08/20 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
关于PyCharm安装后修改路径名称使其可重新打开的问题
2020/10/20 Python
解决Python 写文件报错TypeError的问题
2020/10/23 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
施华洛世奇日本官网:SWAROVSKI日本
2018/05/04 全球购物
继电保护工岗位职责
2014/01/05 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
租车协议书范本
2014/04/22 职场文书
给校长的建议书200字
2014/05/16 职场文书
会计工作能力自我评价
2015/03/05 职场文书
2015年挂职锻炼个人总结
2015/10/22 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python
Python装饰器详细介绍
2022/03/25 Python
浅谈MySql update会锁定哪些范围的数据
2022/06/25 MySQL