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编写PDF文档生成器
Oct 09 PHP
随时给自己贴的图片加文字的php代码
Mar 08 PHP
通过table标签,PHP输出EXCEL的实现方法
Jul 24 PHP
PHP批量上传图片的具体实现方法介绍.
Feb 26 PHP
PHP中批量生成静态html(命令行下运行PHP)
Apr 19 PHP
PHP设计模式之简单投诉页面实例
Feb 24 PHP
Yii2.0预定义的别名功能小结
Jul 04 PHP
PHP面向对象程序设计之类与反射API详解
Dec 02 PHP
PHP获取当前执行php文件名的代码
Mar 02 PHP
laravel ORM关联关系中的 with和whereHas用法
Oct 16 PHP
laravel 框架结合关联查询 when()用法分析
Nov 22 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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实例分享之mysql数据备份
2014/05/19 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
php遍历CSV类实例
2015/04/14 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
PHP实现求解最长公共子串问题的方法
2017/11/17 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
js浮点数保留两位小数点示例代码(四舍五入)
2013/12/26 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
js与jquery正则验证电子邮箱、手机号、邮政编码的方法
2016/07/04 Javascript
import与export在node.js中的使用详解
2017/09/28 Javascript
微信小程序form表单组件示例代码
2018/07/15 Javascript
vue过滤器用法实例分析
2019/03/15 Javascript
vue如何截取字符串
2019/05/06 Javascript
Vue项目中使用jsonp抓取跨域数据的方法
2019/11/10 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
python之Socket网络编程详解
2016/09/29 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
pandas 时间格式转换的实现
2019/07/06 Python
Flask配置Cors跨域的实现
2019/07/12 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
英语系本科生个人求职信
2013/09/21 职场文书
护士个人简历自荐信
2013/10/18 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
公司请假条格式
2014/04/11 职场文书
个人廉政承诺书
2015/04/28 职场文书
傅雷家书读书笔记
2015/06/29 职场文书
中秋节英文祝福语句(14句)
2019/09/11 职场文书
分析Python list操作为什么会错误
2021/11/17 Python