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之数据库操作详解及乱码解决!
Jan 02 PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 PHP
php中的比较运算符详解
Oct 28 PHP
PHP开发微信支付的代码分享
May 25 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
php常用的url处理函数总结
Nov 19 PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 PHP
PHP获取当前执行php文件名的代码
Mar 02 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
Sep 16 PHP
PHP简单实现循环链表功能示例
Nov 10 PHP
php中pcntl_fork创建子进程的方法实例
Mar 14 PHP
php并发加锁问题分析与设计代码实例讲解
Feb 26 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
超级实用的7个PHP代码片段分享
2012/01/05 PHP
PHP 解决session死锁的方法
2013/06/20 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
JavaScript内核之基本概念
2011/10/21 Javascript
基于jQuery实现模拟页面加载进度条
2013/04/01 Javascript
jquery实现输入框动态增减的实例代码
2013/07/14 Javascript
Node.js异步I/O学习笔记
2014/11/04 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
微信小程序入门教程
2016/11/18 Javascript
根据Bootstrap Paginator改写的js分页插件
2016/12/25 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
js实现城市级联菜单的2种方法
2017/06/23 Javascript
VUE页面中加载外部HTML的示例代码
2017/09/20 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
Vue使用axios出现options请求方法
2019/05/30 Javascript
js中apply和call的理解与使用方法
2019/11/27 Javascript
[42:52]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python实现批量解析邮件并下载附件
2018/06/19 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
在Python中获取操作系统的进程信息
2019/08/27 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
英国假发网站:Hothair
2018/02/23 全球购物
Strathberry苏贝瑞中国官网:西班牙高级工匠手工打造
2020/10/19 全球购物
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
拓展培训心得体会
2014/01/04 职场文书
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
单位成立周年感言
2014/01/26 职场文书
《闻一多先生的说和做》教学反思
2014/04/28 职场文书
广告设计专业毕业生自我鉴定
2014/09/27 职场文书
公司离职证明标准格式
2014/11/18 职场文书
2015年调度员工作总结
2015/04/30 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
python和anaconda的区别
2022/05/06 Python