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
Nov 25 PHP
解析array splice的移除数组中指定键的值,返回一个新的数组
Jul 02 PHP
php用正则表达式匹配URL的简单方法
Nov 12 PHP
PHP命名空间(namespace)的使用基础及示例
Aug 18 PHP
PHP数组排序之sort、asort与ksort用法实例
Sep 08 PHP
laravel容器延迟加载以及auth扩展详解
Mar 02 PHP
PHP判断IP并转跳到相应城市分站的方法
Mar 25 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
非常有用的9个PHP代码片段
Apr 06 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
PHP实现递归目录的5种方法
Oct 27 PHP
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Dec 14 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
Zerg剧情介绍
2020/03/14 星际争霸
如何实现php图片等比例缩放
2015/07/28 PHP
微信利用PHP创建自定义菜单的方法
2016/08/01 PHP
PHP判断文件是否被引入的方法get_included_files用法示例
2016/11/29 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
2020/03/27 PHP
解决PHPstudy Apache无法启动的问题【亲测有效】
2020/10/30 PHP
JavaScript语言中的Literal Syntax特性分析
2007/03/08 Javascript
JavaScript的变量作用域深入理解
2009/10/25 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
简介EasyUI datagrid editor combogrid搜索框的实现
2016/04/01 Javascript
jQuery仿京东商城楼梯式导航定位菜单
2016/07/25 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
2017/03/30 jQuery
angular+webpack2实战例子
2017/05/23 Javascript
关于react-router/react-router-dom v4 history不能访问问题的解决
2018/01/08 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
vant(ZanUi)结合async-validator实现表单验证的方法
2018/12/06 Javascript
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
简单实现python收发邮件功能
2018/01/05 Python
Django添加KindEditor富文本编辑器的使用
2018/10/24 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
如何关掉pycharm中的python console(图解)
2019/10/31 Python
英国屋顶用品和材料超市:Roofing Supplies UK
2019/08/24 全球购物
大学生学习生活的自我评价
2013/11/01 职场文书
计算机学生求职信范文
2014/01/30 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
科学发展观活动总结
2014/08/28 职场文书
离职感谢信
2015/01/21 职场文书
社区环境卫生倡议书
2015/04/29 职场文书
《画家和牧童》教学反思
2016/02/17 职场文书
简历中的自我评价怎么写呢?
2019/04/30 职场文书
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android