Laravel使用PHPQRCODE实现生成带有LOGO的二维码图片功能示例

作者:小阿杉 时间:2024-05-03 15:28:12 

本文实例讲述了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程序设计有所帮助。

标签:Laravel,PHPQRCODE,二维码
0
投稿

猜你喜欢

  • Python中动态获取对象的属性和方法的教程

    2022-07-12 07:01:20
  • python如何正确的操作字符串

    2023-12-28 02:46:30
  • 通俗讲解python 装饰器

    2022-04-30 08:20:47
  • mysql建立自定义函数的问题

    2024-01-19 06:26:52
  • Python 操作Excel-openpyxl模块用法实例

    2021-01-20 09:29:34
  • 如何使用 Python 读取文件和照片的创建日期

    2023-11-17 01:25:00
  • Python爬虫练习汇总

    2023-04-27 03:16:37
  • SpringBoot使用flyway初始化数据库

    2024-01-28 13:43:38
  • 使用Django开发简单接口实现文章增删改查

    2023-02-12 22:29:37
  • Oracle数据库的安全策略

    2010-07-31 13:13:00
  • MySql中子查询内查询示例详解

    2024-01-27 23:25:12
  • python程序运行进程、使用时间、剩余时间显示功能的实现代码

    2023-04-14 11:16:33
  • 从学习到接单赚钱 十大网络技术人员推荐收藏的网站

    2023-02-05 02:54:24
  • vue中使用vue-qriously插件生成二维码

    2024-04-27 16:01:31
  • python设置值及NaN值处理方法

    2022-11-30 01:48:42
  • vue实现拖拽效果

    2024-05-02 16:59:58
  • python3实现名片管理系统

    2022-01-21 22:11:01
  • Yolov5(v5.0)+pyqt5界面设计图文教程

    2023-01-30 03:30:16
  • Python和perl实现批量对目录下电子书文件重命名的代码分享

    2022-01-28 02:51:48
  • Python实现简单的多任务mysql转xml的方法

    2024-01-26 20:11:07
  • asp之家 网络编程 m.aspxhome.com