zoukankan      html  css  js  c++  java
  • laravel-利用phpqrcode来实现生成带有logo的二维码图片-android | ios

        /**
         * 利用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', '*');
        }

  • 相关阅读:
    Java职业生涯规划
    Java类加载器总结
    Java字节流与字符流的区别
    Java堆和栈的区别
    详解Java类的生命周期
    Java编程常见问题汇总
    Java总结输入流输出流
    Java NIO:浅析I/O模型
    perl 处理文件路径的一些模块
    Delphi第三方控件安装卸载指南
  • 原文地址:https://www.cnblogs.com/zhangmeilin/p/6826216.html
Copyright © 2011-2022 走看看