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作的文本留言本的例子(三)
Oct 09 PHP
PHP 高级课程笔记 面向对象
Jun 21 PHP
PHP性能优化 产生高度优化代码
Jul 22 PHP
学习使用curl采集curl使用方法
Jan 11 PHP
关于PHP session 存储方式的详细介绍
Jun 25 PHP
PHP 面向对象程序设计(oop)学习笔记(一) - 抽象类、对象接口、instanceof 和契约式编程
Jun 12 PHP
Yii框架登录流程分析
Dec 03 PHP
基于php的CMS中展示文章类实例分析
Jun 18 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
静态html文件执行php语句的方法(推荐)
Nov 21 PHP
Laravel5框架自定义错误页面配置操作示例
Apr 17 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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实现的随机广告显示代码
2007/06/14 PHP
php读取excel文件的简单实例
2013/08/26 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
PHP实现添加购物车功能
2017/03/06 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
网页右键ie不支持event.preventDefault和event.returnValue (需要加window)
2013/02/22 Javascript
javascript怎么禁用浏览器后退按钮
2014/03/27 Javascript
js使用递归解析xml
2014/12/12 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
javascript数字验证的实例代码(推荐)
2016/08/20 Javascript
JS日程管理插件FullCalendar中文说明文档
2017/02/06 Javascript
JavaScript实现按键精灵的原理分析
2017/02/21 Javascript
移动端web滚动分页的实现方法
2017/05/05 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
微信小程序显示下拉列表功能【附源码下载】
2017/12/12 Javascript
微信小程序判断用户是否需要再次授权获取个人信息
2019/07/18 Javascript
Python os模块介绍
2014/11/30 Python
在Python3中初学者应会的一些基本的提升效率的小技巧
2015/03/31 Python
python实现在每个独立进程中运行一个函数的方法
2015/04/23 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
python切片作为占位符使用实例讲解
2021/02/17 Python
企业军训感想
2014/02/07 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
学前班语言教学计划
2015/01/20 职场文书
党员电教片《信仰》心得体会
2016/01/15 职场文书
Python使用UDP实现720p视频传输的操作
2021/04/24 Python
Python 批量下载阴阳师网站壁纸
2021/05/19 Python
java设计模式--七大原则详解
2021/07/21 Java/Android