Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例


Posted in PHP onJuly 07, 2017

本文实例讲述了Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能。分享给大家供大家参考,具体如下:

/**
* 利用phpqrcode来实现生成带有logo的二维码图片
*/
public function getQrCode(Request $request){
    $type  =  $request->input('type');//传递的类型 ios | android
    require_once(dirname(__FILE__) . '/phpqrcode/' . 'phpqrcode.php');
    $errorCorrectionLevel = 'H'; // 错误校正
    $matrixPointSize = 5; // 边界空白位置
    $QRcode =  new \QRcode;
    if($type){
      if($type == 'ios'){
        $value =  'http://www.ios.com'; // 二维码存放的内容
        $QRcode->png($value, 'ios.png', $errorCorrectionLevel, $matrixPointSize, 2); //生成二维码
        //echo "二维码已生成";
        $logo = 'logo.png';//logo的图片地址
        //echo " <img src='../../../public/logo.png'>";
        $QR = 'ios.png'; //二维码图片地址
        //echo " <img src='../../../ios.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_height = imagesy($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,'ios.png'); //跟logo合并之后的地址
        $a   =  'http://www.ios.com/ios.png';
        $status =  0;
        $msg  =  $a;
      }elseif($type == 'android'){
          $value =  'http://www.android.com'; // 二维码存放的内容
          //var_dump($value);
          $QRcode->png($value, 'android.png', $errorCorrectionLevel, $matrixPointSize, 2); //生成二维码
          //echo "二维码已生成";
          $logo = 'logo.png';//logo的图片地址
          //echo " <img src='../../../public/logo.png'>";
          $QR = 'android.png'; //二维码图片地址
          //echo " <img src='../../../android.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_height = imagesy($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,'android.png'); //跟logo合并之后的地址
          $a   =  'http://www.android.com/android.png';
          $status =  0;
          $msg  =  $a;
      }else{
        $status =  1;
        $msg  =  '没有该类型!';
      }
      //QRcode::png($value, 'sunny.png', $errorCorrectionLevel, $matrixPointSize, 2); //生成二维码
    }else{
      $status =  2;
      $msg  =  '参数传递不完整!';
    }
    return response()->json(['status' => $status,'msg' => $msg])->header('Access-Control-Allow-Origin', '*');
}
PHP 相关文章推荐
无数据库的详细域名查询程序PHP版(3)
Oct 09 PHP
Mysql数据库操作类( 1127版,提供源码下载 )
Dec 02 PHP
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
Jul 03 PHP
探讨方法的重写(覆载)详解
Jun 08 PHP
smarty模板中拼接字符串的方法
Feb 14 PHP
ThinkPHP模板判断输出Defined标签用法详解
Jun 30 PHP
php curl 上传文件代码实例
Apr 27 PHP
PHP通过API获取手机号码归属地
May 28 PHP
PHP查看当前变量类型的方法
Jul 31 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
Jun 06 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
thinkPHP微信分享接口JSSDK用法实例
Jul 07 #PHP
微信开发之获取JSAPI TICKET
Jul 07 #PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 #PHP
一个实用的php验证码类
Jul 06 #PHP
万能的php分页类
Jul 06 #PHP
PHP 实现从数据库导出到.csv文件方法
Jul 06 #PHP
php文件上传类的分享
Jul 06 #PHP
You might like
php 远程关机操作的代码
2008/12/05 PHP
php中session退出登陆问题
2014/02/27 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
jquery下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
2010/10/22 Javascript
javascript学习笔记(三) String 字符串类型介绍
2012/06/19 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
快速获取/设置iframe内对象元素的几种js实现方法
2016/05/20 Javascript
jQuery基础知识点总结(DOM操作)
2016/06/01 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
微信小程序侧边栏滑动特效(左右滑动)
2017/01/23 Javascript
jQuery插件form-validation-engine正则表达式操作示例
2017/02/09 Javascript
详解数组Array.sort()排序的方法
2020/05/09 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
JS获取子、父、兄节点方法小结
2017/08/14 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Python编程求质数实例代码
2018/01/31 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
python删除文本中行数标签的方法
2018/05/31 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
对IPython交互模式下的退出方法详解
2019/02/16 Python
python实现电子产品商店
2019/02/26 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
python except异常处理之后不退出,解决异常继续执行的实现
2020/04/25 Python
简单了解python列表和元组的区别
2020/05/14 Python
基于css3仿造window7的开始菜单
2010/06/17 HTML / CSS
Booking.com美国:全球酒店预订网站
2017/04/18 全球购物
Java中的基本数据类型所占存储空间大小固定的吗
2012/02/15 面试题
蓬莱阁导游词
2015/02/04 职场文书
导游词之介休绵山
2019/12/31 职场文书
python实现简单反弹球游戏
2021/04/12 Python
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers