? Thinkphp3.2結合phpqrcode生成二維碼(含Logo的二維碼)-青島金屯化工有限公司
    1. <thead id="jzz7t"></thead>
    2. <meter id="jzz7t"></meter>
      <meter id="jzz7t"></meter>
    3. <optgroup id="jzz7t"><sup id="jzz7t"></sup></optgroup>
    4. 新聞咨詢

      首先,下載phpqrcode,將其解壓到項目ThinkPHP\Library\Vendor目錄下。
      Index_index.html(模板可自行配置)

      1. <form action="{:U('index/index')}" enctype="multipart/form-data"  method = "post">

      2.     <b>尺寸大小:</b>

      3.         <input type="text" name = "matrixPointSize">    <br>

      4.     <b>邊距大小:</b>

      5.         <select class="form-control" name="matrixMarginSize" >

      6.             <option value="1" selected="selected">1px</option>

      7.             <option value="2">2px</option>

      8.             <option value="3">3px</option>

      9.             <option value="4">5px</option>

      10.         </select><br>

      11.     <b>容錯級別:</b>

      12.         <select class="form-control" name="errorCorrectionLevel" id="errorCorrectionLevel">

      13.         <option value="L">L - Low (7%)</option>

      14.         <option value="M" selected="selected">M - Medium (15%)</option>

      15.         <option value="Q">Q - Quartile (25%)</option>

      16.         <option value="H">H - High (30%)</option>

      17.         </select><br>

      18.     <b>二維碼內容:</b>

      19.         <input type="text" name = "content">    <br>

      20.     <b>二維碼logo:</b>

      21.         <input type="file" name = "test" /><br><br>

      22.     <input type="submit" value = "生成二維碼">

      23. </form>

      24. <img src="{$img}" alt="">


      控制器:IndexController.class.php

      1. <?php

      2. namespace Home\Controller;

      3. use Think\Controller;

      4. class IndexController extends Controller {

      5.     public function index(){

      6.         $config = array(

      7.             'maxSize'    =>    3145728,

      8.             'rootPath'   =>    './upload/',

      9.             'savePath'   =>    '',

      10.             'saveName'   =>    array('uniqid',''),

      11.             'exts'       =>    array('jpg', 'gif', 'png', 'jpeg'),

      12.             'autoSub'    =>    true,

      13.             'subName'    =>    array('date','Ymd'),

      14.         );

      15.         $upload = new \Think\Upload($config);// 實例化上傳類

      16.         // 上傳單個文件

      17.         $info   =   $upload->uploadOne($_FILES['test']);

      18.         if(!$info) {// 上傳錯誤提示錯誤信息

      19.             $qrcode_path_new = './Public/Home/images/code'.'_'.date("Ymdhis").'.png';

      20.             $content = $_POST['content'];

      21.             $matrixPointSize = $_POST['matrixPointSize'];

      22.             $matrixMarginSize = $_POST['matrixMarginSize'];

      23.             $errorCorrectionLevel = $_POST['errorCorrectionLevel'];

      24.             makecode_no_pic($content,$qrcode_path_new,$matrixPointSize,$matrixMarginSize,$errorCorrectionLevel);

      25.             $this->assign('img',$qrcode_path_new);

      26.         }else{

      27.             $qrcode_path = "./upload/".$info['savepath'].$info['savename'];

      28.             $content = $_POST['content'];

      29.             $matrixPointSize = $_POST['matrixPointSize'];

      30.             $matrixMarginSize = $_POST['matrixMarginSize'];

      31.             $errorCorrectionLevel = $_POST['errorCorrectionLevel'];

      32.             $url = "./upload/qrcode/".date("YmdHis").".png";

      33.             makecode($qrcode_path,$content,$matrixPointSize,$matrixMarginSize,$errorCorrectionLevel,$url);

      34.             $this->assign('img',$url);

      35.             }

      36.         $this->display();

      37.     }

      38. }

      在項目Application/Home/Common下新建function.php

      1. <?php

      2. function makecode($qrcode_path,$content,$matrixPointSize,$matrixMarginSize,$errorCorrectionLevel,$url){

      3.         /**     參數詳情:

      4.          *      $qrcode_path:logo地址

      5.          *      $content:需要生成二維碼的內容

      6.          *      $matrixPointSize:二維碼尺寸大小

      7.          *      $matrixMarginSize:生成二維碼的邊距

      8.          *      $errorCorrectionLevel:容錯級別

      9.          *      $url:生成的帶logo的二維碼地址

      10.          * */

      11.         ob_clean ();

      12.         Vendor('phpqrcode.phpqrcode');

      13.         $object = new \QRcode();

      14.         $qrcode_path_new = './Public/Home/images/code'.'_'.date("Ymdhis").'.png';//定義生成二維碼的路徑及名稱

      15.         $object::png($content,$qrcode_path_new, $errorCorrectionLevel, $matrixPointSize, $matrixMarginSize);

      16.         $QR = imagecreatefromstring(file_get_contents($qrcode_path_new));//imagecreatefromstring:創建一個圖像資源從字符串中的圖像流

      17.         $logo = imagecreatefromstring(file_get_contents($qrcode_path));

      18.         $QR_width = imagesx($QR);// 獲取圖像寬度函數

      19.         $QR_height = imagesy($QR);//獲取圖像高度函數

      20.         $logo_width = imagesx($logo);// 獲取圖像寬度函數

      21.         $logo_height = imagesy($logo);//獲取圖像高度函數

      22.         $logo_qr_width = $QR_width / 4;//logo的寬度

      23.         $scale = $logo_width / $logo_qr_width;//計算比例

      24.         $logo_qr_height = $logo_height / $scale;//計算logo高度

      25.         $from_width = ($QR_width - $logo_qr_width) / 2;//規定logo的坐標位置

      26.         imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width, $logo_qr_height, $logo_width, $logo_height);

      27.         /**     imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h )

      28.          *      參數詳情:

      29.          *      $dst_image:目標圖象連接資源。

      30.          *      $src_image:源圖象連接資源。

      31.          *      $dst_x:目標 X 坐標點。

      32.          *      $dst_y:目標 Y 坐標點。

      33.          *      $src_x:源的 X 坐標點。

      34.          *      $src_y:源的 Y 坐標點。

      35.          *      $dst_w:目標寬度。

      36.          *      $dst_h:目標高度。

      37.          *      $src_w:源圖象的寬度。

      38.          *      $src_h:源圖象的高度。

      39.          * */

      40.         Header("Content-type: image/png");

      41.         //$url:定義生成帶logo的二維碼的地址及名稱

      42.         imagepng($QR,$url);

      43.     }

      44.     function makecode_no_pic($content,$qrcode_path_new,$matrixPointSize,$matrixMarginSize,$errorCorrectionLevel){

      45.         ob_clean ();

      46.         Vendor('phpqrcode.phpqrcode');

      47.         $object = new \QRcode();

      48.         $object::png($content,$qrcode_path_new, $errorCorrectionLevel, $matrixPointSize, $matrixMarginSize);

      49.     }

      50. ?>

      在沒有圖片上傳的情況下,生成我二維碼只是單純的二維碼,只有在有logo上傳的時候,才會生成帶logo的二維碼。

      感謝原文作者:http://www.thinkphp.cn/topic/51726.html

      (該文章僅作為技術留檔)

      Thinkphp3.2結合phpqrcode生成二維碼(含Logo的二維碼)

      喜歡,請掃碼分享

      公司地址:青島膠州市李哥莊鎮大屯一村 

      電話:0532-88292835 E-Mail : 986503759@qq.com

      Copyright?2007-2008 青島金屯化工有限公司 All Rights Reserved.

      魯ICP備16050441號-1 | 安全生產許可證:(魯)WH安許證字(2014)020062號

      Whois查詢網站備案Thinkphp | LNMP |

      TOP

      体育彩票11选5开奖号码
      1. <thead id="jzz7t"></thead>
      2. <meter id="jzz7t"></meter>
        <meter id="jzz7t"></meter>
      3. <optgroup id="jzz7t"><sup id="jzz7t"></sup></optgroup>
        1. <thead id="jzz7t"></thead>
        2. <meter id="jzz7t"></meter>
          <meter id="jzz7t"></meter>
        3. <optgroup id="jzz7t"><sup id="jzz7t"></sup></optgroup>