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版(1)
Oct 09 PHP
PHP面向对象分析设计的经验原则
Sep 20 PHP
php 删除记录实现代码
Mar 12 PHP
php 图像函数大举例(非原创)
Jun 20 PHP
JSON在PHP中的应用介绍
Sep 08 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
php以post形式发送xml的方法
Nov 04 PHP
PHP输入输出流学习笔记
May 12 PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
PHP常用的类封装小结【4个工具类】
Jun 28 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
Dec 02 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
Email+URL的判断和自动转换函数
2006/10/09 PHP
php 运行效率总结(提示程序速度)
2009/11/26 PHP
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
PHP警告Cannot use a scalar value as an array的解决方法
2012/01/11 PHP
ThinkPHP中的系统常量和预定义常量集合
2014/07/01 PHP
PHP模板引擎Smarty内建函数详解
2016/04/11 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
在JavaScript中遭遇级联表达式陷阱
2007/03/08 Javascript
JS 控制小数位数的实现代码
2011/08/02 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
2011/10/01 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
2013/05/15 Javascript
JavaScript动态修改背景颜色的方法
2015/04/16 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
微信小程序 图片宽高自适应详解
2017/05/11 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
javascript计算渐变颜色的实例
2017/09/22 Javascript
深入理解vuex2.0 之 modules
2017/11/20 Javascript
关于Vue在ie10下空白页的debug小结
2018/05/02 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
微信小程序云开发之数据库操作
2019/05/18 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
利用Python模拟登录pastebin.com的实现方法
2019/07/12 Python
np.dot()函数的用法详解
2020/01/17 Python
详解python logging日志传输
2020/07/01 Python
python推导式的使用方法实例
2021/02/28 Python
意大利领先的奢侈品在线时装零售商:MCLABELS
2020/10/13 全球购物
自我鉴定写作要点
2014/01/17 职场文书
项目合作意向书范本
2014/04/01 职场文书
扬尘污染防治方案
2014/06/15 职场文书
个人授权委托书范文
2014/09/21 职场文书
2016年学校爱国卫生月活动总结
2016/04/06 职场文书