• 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', '*');
        }

  • 相关阅读:
    id4的数据库持久化写法
    docker 加速镜像的地址收集
    mongodb 的ID转换实体要注意的地方
    net core3.0 常用封装状态码总结
    JAVA8—————StringJoiner类
    BigDecimal加减乘除
    mysql 查询奇偶数
    Java遍历Map对象的方式
    Java中List, Integer[], int[]的相互转换
    springboot 读取resources下的文件然后下载
  • 原文地址:https://www.cnblogs.com/zhangmeilin/p/6826216.html
Copyright © 2020-2023  润新知