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
php中获取远程客户端的真实ip地址的方法
Aug 03 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
关于二级目录拖拽排序的实现(源码示例下载)
Apr 26 PHP
PHP小技巧之函数重载
Jun 02 PHP
对PHP新手的一些建议(PHP学习经验总结)
Aug 20 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
Oct 27 PHP
WordPress后台中实现图片上传功能的实例讲解
Jan 11 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
Apr 27 PHP
PHP实现微信商户支付企业付款到零钱功能
Sep 30 PHP
PHP基于openssl实现的非对称加密操作示例
Jan 11 PHP
laravel执行php artisan migrate报错的解决方法
Oct 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 安全过滤函数代码
2011/05/07 PHP
PHP随机获取未被微信屏蔽的域名(微信域名检测)
2017/03/19 PHP
浅谈javascript的原型继承
2012/07/25 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
onclick与listeners的执行先后问题详细解剖
2013/01/07 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
2013/09/09 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
2020/11/04 Javascript
JavaScript/TypeScript 实现并发请求控制的示例代码
2021/01/18 Javascript
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
Python3里的super()和__class__使用介绍
2015/04/23 Python
Python多线程爬虫简单示例
2016/03/04 Python
Python实现确认字符串是否包含指定字符串的实例
2018/05/02 Python
python爬虫之模拟登陆csdn的实例代码
2018/05/18 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
Python中一些深不见底的“坑”
2019/06/12 Python
Python字符串、列表、元组、字典、集合的补充实例详解
2019/12/20 Python
Python使用Tkinter实现滚动抽奖器效果
2020/01/06 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
解决python父线程关闭后子线程不关闭问题
2020/04/25 Python
Python实现CAN报文转换工具教程
2020/05/05 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
一款基于css3和jquery实现的动画显示弹出层按钮教程
2015/01/04 HTML / CSS
毕业生自荐信
2013/12/14 职场文书
音乐教学反思
2014/02/02 职场文书
毕业生实习证明
2014/09/19 职场文书
违章停车检讨书
2014/10/21 职场文书
小学生学习保证书
2015/02/26 职场文书
金榜题名主持词
2015/07/02 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
详解MySQL的Seconds_Behind_Master
2021/05/18 MySQL
教你怎么用Python生成九宫格照片
2021/05/20 Python
Vscode中SSH插件如何远程连接Linux
2022/05/02 Servers
netty 实现tomcat的示例代码
2022/06/05 Servers