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 auth_http类库进行身份效验
Mar 19 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
几个有用的php字符串过滤,转换函数代码
May 01 PHP
基于php设计模式中单例模式的应用分析
May 15 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 PHP
PHP检测字符串是否为UTF8编码的常用方法
Nov 21 PHP
php多线程实现方法及用法实例详解
Oct 26 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 PHP
php生成图片缩略图功能示例
Feb 22 PHP
Yii2 加载css、js 载静态资源的方法
Mar 10 PHP
Laravel5.1框架路由分组用法实例分析
Jan 04 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
memcached 和 mysql 主从环境下php开发代码详解
2010/05/16 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
解析关于java,php以及html的所有文件编码与乱码的处理方法汇总
2013/06/24 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
PHP高并发和大流量解决方案整理
2021/03/09 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
Colortip基于jquery的信息提示框插件在IE6下面的显示问题修正方法
2010/12/06 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
JQuery实现样式设置、追加、移除与切换的方法
2015/06/11 Javascript
jQuery Ajax实现跨域请求
2017/01/21 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
Angular使用cli生成自定义文件、组件的方法
2018/09/04 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
Python的函数的一些高阶特性
2015/04/27 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
python中的随机函数小结
2018/01/27 Python
python多进程实现文件下载传输功能
2018/07/28 Python
python操作openpyxl导出Excel 设置单元格格式及合并处理代码实例
2019/08/27 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
解决Ubuntu18中的pycharm不能调用tensorflow-gpu的问题
2020/09/17 Python
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
如何让Java程序执行效率更高
2014/06/25 面试题
介绍一下Prototype的$()函数,$F()函数,$A()函数都是什么作用?
2014/03/05 面试题
给老婆的保证书
2015/01/16 职场文书
武当山导游词
2015/02/03 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
2015年保险公司内勤工作总结
2015/05/23 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS