ロゴ付き二次元コードを使用して生成thinkphp phpqrcode TP5

 

1件のダウンロードには、2次元コードのライブラリーを生成します

作曲は必要 aferrandini / phpqrcodeを

 

2ダウンロードする]ボタンをクリックしてください

 // 二维码下载
        パブリック 関数down_qrcode()
        { 
            場合$この - >要求- > isPost()){
                 $ shop_id =入力( 'shop_id' )。
                $ merchant_id = Dbの::テーブル( 'xcf_shops') - >( 'shop_id'、$のshop_id) - >値( 'merchant_id' );
                もし$ merchant_id ){
                     $ URL = 'XCF'。$ merchant_id ; // 二维码内容
                    $ PIC =   $この - > scerweima1($のURL );
                     ; 
                } {
                     リターン JSON([ 'MSG' => 'S' => 'エラーが'、 'merchant_idが存在しない、豊かな友人を検討してください。' ]); 
                } 
            } 

        }

 

 

//は、2次元コード生成
        // 2プラスのロゴ(画像ファイル生成)は、二次元コードで生成された。
        公開 関数 scerweima1($テキスト){
             // エコー「喜」;ダイ; 
           //ダンプ(APP_XCF_LOG.'xcf .PNG ');ダイ; 
            //Vendor('chillerlan.php-qrcode.public.qrcode'); 
            //パス名= DATE $( "はYmd"、時間()); 
            $パス名 = APP_PATH「/../。公共/アップロード/ QRコード/ ' ;
             IF(!is_dir$パス名 {))// ディレクトリが存在しない場合は作成され
                ます。mkdir$パス名、0777、真の); 
            } 

            $ errorCorrectionLevel= 'H';   // フォールトトレランスレベル
            $ matrixPointSize = 10;       //は、画像サイズを生成
            //次元コード画像を生成
            $ ABC = DATE( "はYmd"、時間())時間() 'PNGを' ;
             $ファイル名 = $パス名$ ABC ; 
            \ PHPQRCode \ QRコード :: PNG($テキスト$ファイル名$ errorCorrectionLevel$ matrixPointSize、2 );
             $ロゴ = APP_PATH「/../public/assets/xcf_log/xcf.png。 「; // 準備ロゴ画像
           ダンプ//(APP_XCF_LOG.'xcf.png「);死ぬ; 
            //ダンプ($ロゴ);ダイ; 
            $ QR = $ファイル名 ;       // すでに生成された元の2次元コードパターン
           //ダンプ($ QR); 
            IFfile_exists$ロゴ)){
                 $ QR = imagecreatefromstring(のfile_get_contents$ QR));     // 対象画像接続リソース。
                ロゴ$ = imagecreatefromstring(のfile_get_contents$ロゴ));   // ソース画像の接続リソース。
                QR_width $ = imagesx($ QR);       // 二次元コードの画像幅
                の$ QR_heightImagesy =($ QR);      // 二次元コード画像高
                $ logo_width = imagesx($ロゴ);     // ロゴ画像幅
                $ logo_height = imagesy($ロゴ);    // ロゴの像高
                $ logo_qr_width = $ QR_width / 4。    // 合わせた幅(二次元コードの1/5)の後ロゴ
                $スケール = $ logo_width / $ logo_qr_width ;   // ロゴ幅スケーリング比(幅自体の後に幅/組成物)
                $ logo_qr_height = $ logo_height / $スケール ; // 組み合わせた高さの後にロゴ
                の$ from_width =($ QR_width- $のlogo_qr_width)/ 2;   // 合成後のロゴがポイントの左上座標
                //画像を再結合し、リサイズ
                / * 
                 * imagecopyresampled()画像(画像ソースの矩形部分)が他の画像にコピーされます中
                 * / 
                imagecopyresampled($ QR$ロゴ$ from_width$ from_width、0、0、$ logo_qr_width$ logo_qr_height$ logo_width$ logo_height ;)
            } 
            // 出力画像 
            imagepng($ QR$ファイル名); 
            
            リターンリクエスト() - >ドメイン() ' /アップロード/ QRコード/' ..$ abcの
        }

 

 

おすすめ

転載: www.cnblogs.com/yehuisir/p/11429908.html