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 获取mysql数据库信息代码
Mar 12 PHP
php csv操作类代码
Dec 14 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
Jul 22 PHP
php中strstr、strrchr、substr、stristr四个函数的区别总结
Sep 22 PHP
php获取本周星期一具体日期的方法
Apr 20 PHP
总结对比php中的多种序列化
Aug 28 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
Yii框架实现记录日志到自定义文件的方法
May 23 PHP
php删除一个路径下的所有文件夹和文件的方法
Feb 07 PHP
PHP时间函数使用详解
Mar 21 PHP
关于laravel-admin ueditor 集成并解决刷新的问题
Oct 21 PHP
php ActiveMQ的安装与使用方法图文教程
Feb 23 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
在smarty中调用php内置函数的方法
2013/02/07 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
php获取ajax的headers方法与内容实例
2017/12/27 PHP
PHP设计模式之原型模式定义与用法详解
2018/04/03 PHP
JavaScript 自动分号插入(JavaScript synat:auto semicolon insertion)
2009/11/04 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
JavaScript调用后台的三种方法实例
2013/10/17 Javascript
引入JS文件IE6报语法错误或缺少对象问题的解决方法
2014/01/09 Javascript
javascript实现表格排序 编辑 拖拽 缩放
2015/01/02 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
Vue实现点击后文字变色切换方法
2018/02/11 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
2018/07/31 Javascript
angularJs中ng-model-options设置数据同步的方法
2018/09/30 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
python实现简单登陆流程的方法
2018/04/22 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
Python进阶之自定义对象实现切片功能
2019/01/07 Python
Python + OpenCV 实现LBP特征提取的示例代码
2019/07/11 Python
python requests指定出口ip的例子
2019/07/25 Python
解决Django中修改js css文件但浏览器无法及时与之改变的问题
2019/08/31 Python
Python参数传递对象的引用原理解析
2020/05/22 Python
python 如何上传包到pypi
2020/12/24 Python
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
在购买印度民族服饰:Soch
2020/09/15 全球购物
市场营销专科应届生求职信
2013/11/24 职场文书
高中军训感言500字
2014/02/24 职场文书
绘画专业自荐信
2014/07/04 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
色戒观后感
2015/06/12 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
JavaScript 原型与原型链详情
2021/11/02 Javascript
高性能跳频抗干扰宽带自组网电台
2022/02/18 无线电
漫画「请问您今天要来点兔子吗?」最新杂志彩页公开
2022/03/24 日漫