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多用户计数器代码
Mar 11 PHP
三个类概括PHP的五种设计模式
Sep 05 PHP
php eval函数用法总结
Oct 31 PHP
浅析PHP 按位与或 (^ 、&amp;)
Jun 21 PHP
PHP内核探索:变量概述
Jan 30 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
PHP strtotime函数用法、实现原理和源码分析
Feb 04 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 PHP
PHP文件类型检查及fileinfo模块安装使用详解
May 09 PHP
在 Laravel 中动态隐藏 API 字段的方法
Oct 25 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/09/19 PHP
PHP中获取文件扩展名的N种方法小结
2012/02/27 PHP
PHP重定向的3种方式
2013/03/07 PHP
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
关于PHP堆栈与列队的学习
2013/06/21 PHP
php 不使用js实现页面跳转
2014/02/11 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
windows下安装php的memcache模块的方法
2015/04/07 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
PHP中获取文件创建日期、修改日期、访问时间的方法
2016/11/05 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
AngularJS入门教程之模块化操作用法示例
2016/11/02 Javascript
设置cookie指定时间失效(实例代码)
2017/05/28 Javascript
JS判断时间段的实现代码
2017/06/14 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
Angular使用Md5加密的解决方法
2017/09/16 Javascript
JQuery元素快速查找与操作
2018/04/22 jQuery
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
小程序实现订单倒计时功能
2019/04/23 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
[46:04]Liquid vs VP Supermajor决赛 BO 第四场 6.10
2018/07/05 DOTA
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
2016/11/16 Python
python遍历文件夹下所有excel文件
2018/01/03 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
使用已经得到的keras模型识别自己手写的数字方式
2020/06/29 Python
乌克兰第一的珠宝网上商店:Gold.ua
2019/11/29 全球购物
.net开发工程师面试题
2014/02/25 面试题
天网面试题
2013/04/07 面试题
社区平安建设方案
2014/05/25 职场文书