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 获取mysql数据库信息代码
Mar 12 PHP
PHP 读取文件内容代码(txt,js等)
Dec 06 PHP
PHP IPV6正则表达式验证代码
Feb 16 PHP
php程序的国际化实现方法(利用gettext)
Aug 14 PHP
基于Discuz security.inc.php代码的深入分析
Jun 03 PHP
浅谈discuz密码加密的方式
May 22 PHP
PHP从FLV文件获取视频预览图的方法
Mar 12 PHP
php获取服务器操作系统相关信息的方法
Oct 08 PHP
thinkPHP简单实现多个子查询语句的方法
Dec 05 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
Feb 18 PHP
php 广告点击统计代码(php+mysql)
Feb 21 PHP
PHP迭代器和迭代的实现与使用方法分析
Apr 19 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
Apache+php+mysql在windows下的安装与配置图解(最新版)
2008/11/30 PHP
PHP 文章中的远程图片采集到本地的代码
2009/07/30 PHP
php设计模式 Delegation(委托模式)
2011/06/26 PHP
php判断ip黑名单程序代码实例
2014/02/24 PHP
关于Curl在Swoole协程中的解决方案详析
2019/09/12 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
jQuery实现页面滚动时层智能浮动定位实例探讨
2013/03/29 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
2015/01/20 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
关于数据与后端进行交流匹配(点亮星星)
2016/08/03 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
Jquery的Ajax技术使用方法
2019/01/21 jQuery
小程序实现图片移动缩放效果
2020/05/26 Javascript
对python产生随机的二维数组实例详解
2018/12/13 Python
python字典的常用方法总结
2019/07/31 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
error和exception有什么区别
2012/10/02 面试题
日期和时间问题
2015/01/04 面试题
Java中采用什么结构来捕获、处理异常?各子句的顺序、功能如何
2013/10/07 面试题
内业资料员岗位职责
2014/01/04 职场文书
人资专员岗位职责
2014/04/04 职场文书
政府采购方案
2014/06/12 职场文书
园林技术专业求职信
2014/07/28 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
交通安全横幅标语
2014/10/07 职场文书
党员公开承诺书2015
2015/01/21 职场文书
高中信息技术教学反思
2016/02/16 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书