? Thinkphp3.2结合phpqrcode生成二维码(含Logo的二维码)-青岛金屯化工有限公司
  • <dl id="tnvqm"><ins id="tnvqm"><thead id="tnvqm"></thead></ins></dl><div id="tnvqm"><tr id="tnvqm"></tr></div>
  • <dl id="tnvqm"><s id="tnvqm"></s></dl>
    <dl id="tnvqm"></dl>
  • 新闻咨询

    首先,?#30053;豴hpqrcode,将其解压到项目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:创建一个图像资?#21019;幼址?#20018;中的图像流

    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:目标宽?#21462;?/span>

    36.          *      $dst_h:目标高?#21462;?/span>

    37.          *      $src_w:源图象的宽?#21462;?/span>

    38.          *      $src_h:源图象的高?#21462;?/span>

    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的二维码。

    ?#34892;?#21407;文作者: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

    gt彩票软件
  • <dl id="tnvqm"><ins id="tnvqm"><thead id="tnvqm"></thead></ins></dl><div id="tnvqm"><tr id="tnvqm"></tr></div>
  • <dl id="tnvqm"><s id="tnvqm"></s></dl>
    <dl id="tnvqm"></dl>
  • <dl id="tnvqm"><ins id="tnvqm"><thead id="tnvqm"></thead></ins></dl><div id="tnvqm"><tr id="tnvqm"></tr></div>
  • <dl id="tnvqm"><s id="tnvqm"></s></dl>
    <dl id="tnvqm"></dl>
  • 彩客网手机版 青海快3开奖结果今天 一肖中特公开验证 彩牙全国彩票开奖系统 百灵的百人牛牛已下架 河北时时彩现场开奖结果 吉林11选5任选五和值 3d5码组3复式多少钱 双色球奖池 体彩江苏7位数怎么算中奖 宝马论坛二生肖中特 福彩时时彩开奖走势图 河北20选5开奖结果开门彩 广东快乐10分助手苹果 七星彩3gcp彩票导购