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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM