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 相关文章推荐
NOD32 v2.70.32 简体中文封装版 提供下载了
Feb 27 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
win7+apache+php+mysql环境配置操作详解
Jun 10 PHP
php一些错误处理的方法与技巧总结
Aug 10 PHP
php生成excel文件的简单方法
Feb 08 PHP
php使用curl和正则表达式抓取网页数据示例
Apr 13 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
使用PHP similar text计算两个字符串相似度
Nov 06 PHP
学习php设计模式 php实现备忘录模式(Memento)
Dec 09 PHP
PHP编译configure时常见错误的总结
Aug 17 PHP
基于laravel缓冲cache的用法详解
Oct 23 PHP
PHP扩展类型及安装方式解析
Apr 27 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 新手入门教程
2009/08/03 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
javascript引导程序
2008/10/26 Javascript
JavaScript 高效运行代码分析
2010/03/18 Javascript
jQuery 美元符冲突的解决方法
2010/03/28 Javascript
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
模仿百度三维地图的js数据分享
2011/05/12 Javascript
JavaScript加强之自定义event事件
2013/09/21 Javascript
nodejs事件的监听与触发的理解分析
2015/02/12 NodeJs
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
简单理解vue中Props属性
2016/10/27 Javascript
JS双击变input框批量修改内容
2016/12/12 Javascript
js css3实现图片拖拽效果
2017/03/04 Javascript
[14:56]教你分分钟做大人:巫医
2014/10/30 DOTA
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
深入解析Python编程中JSON模块的使用
2015/10/15 Python
python中星号变量的几种特殊用法
2016/09/07 Python
pandas中Timestamp类用法详解
2017/12/11 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
python 设置输出图像的像素大小方法
2019/07/04 Python
python的pyecharts绘制各种图表详细(附代码)
2019/11/11 Python
Django模板标签中url使用详解(url跳转到指定页面)
2020/03/19 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
外企办公室竞聘演讲稿
2013/12/29 职场文书
医学生个人求职信范文
2014/02/07 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
《荷花》教学反思
2014/04/16 职场文书
测控技术自荐信
2014/06/05 职场文书
关于长城的导游词
2015/01/30 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书