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中判断数组是一维,二维,还是多维的解决方法
May 04 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
PHP图片等比例缩放生成缩略图函数分享
Jun 10 PHP
php基于GD库画五星红旗的方法
Feb 24 PHP
Yii扩展组件编写方法实例分析
Jun 29 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
Aug 17 PHP
Zend Framework上传文件重命名的实现方法
Nov 25 PHP
详解Yii2.0使用AR联表查询实例
Jun 16 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
PHP ADODB实现事务处理功能示例
May 25 PHP
PHP goto语句用法实例
Aug 06 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
Mar 09 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树的代码,可以嵌套任意层
2006/10/09 PHP
PHP中extract()函数的定义和用法
2012/08/17 PHP
PHP中spl_autoload_register()和__autoload()区别分析
2014/05/10 PHP
PHP开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
Thinkphp 中 distinct 的用法解析
2016/12/14 PHP
php简单生成一组与多组随机字符串的方法
2017/05/09 PHP
自己写了一个展开和收起的多更能型的js效果
2013/03/05 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
js判断浏览器版本以及浏览器内核的方法
2015/01/20 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
详谈表单格式化插件jquery.serializeJSON
2017/06/23 jQuery
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
vue学习笔记五:在vue项目里面使用引入公共方法详解
2019/04/04 Javascript
vue 导航菜单刷新状态不消失,显示对应的路由界面操作
2020/08/06 Javascript
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
对Python中type打开文件的方式介绍
2018/04/28 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
对Python中内置异常层次结构详解
2018/10/18 Python
python3.6中@property装饰器的使用方法示例
2019/08/17 Python
Python列表解析操作实例总结
2020/02/26 Python
Unineed旗下时尚轻奢网站:FABHunt
2019/05/13 全球购物
如何利用cmp命令比较文件
2013/09/23 面试题
自荐信格式简述
2014/01/25 职场文书
小学英语课后反思
2014/04/26 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
房屋维修协议书范本
2014/09/25 职场文书
延安红色之旅心得体会
2014/10/07 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
英语辞职信怎么写
2015/02/28 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
建筑工程催款函
2015/06/24 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
解决Maven项目中 Invalid bound statement 无效的绑定问题
2021/06/15 Java/Android