ThinkPHP利用phpqrcode生成二维码(带logo)

首先需要引入phpqrcode文件。文件下载:phpqrcode.rar


1
2
3
4
5
6
7
8
9
< img alt = "二维码" src = "http://www.xcsoft.cn/public/qrcode?text=填写需要生成的数据&size=4&level=L&padding=2&logo=" >

官方默认程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
     //引入phpqrcode文件
     include "phpqrcode/phpqrcode.php" ;
     //要生成二维码的数据
     $text = "http://www.xcsoft.cn" ;
     //纠错级别, 纠错级别越高,生成图片会越大
     //L水平    7%的字码可被修正
     //M水平    15%的字码可被修正
     //Q水平    25%的字码可被修正
     //H水平    30%的字码可被修正
     $level = "L" ;
     //图片每个黑点的像素。
     $size = "4" ;
     //生成图片 第二个参数:是否保存成文件 如需要保存文件,第二个参数改为文件名即可,如:'qrcode.png'
     QRcode::png( $text , false, $level , $size );
?>

       需要兼容到ThinkPHP里,则需要把下载到的文件复制到Vendor夹里。

ThinkPHP代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//引用地址http://www.xcsoft.cn/public/qrcode
//text:需要生成二维码的数据,默认:http://www.xcsoft.cn
//size:图片每个黑点的像素,默认4
//level:纠错等级,默认L
//padding:图片外围空白大小,默认2
//logo:全地址,默认为空
//完整引用地址:http://www.xcsoft.cn/public/qrcode?text=http://www.xcsoft.cn&size=4&level=L&padding=2&logo=http://www.xcsoft.cn/Public//images/success.png
public function qrcode( $text = 'http://www.xcsoft.cn' , $size = '4' , $level = 'L' , $padding =2, $logo =true){
     $text = $this ->_get( 'text' )? $this ->_get( 'text' ): $text ;
     $size = $this ->_get( 'size' )? $this ->_get( 'size' ): $size ;
     $level = $this ->_get( 'level' )? $this ->_get( 'level' ): $level ;
     $logo = $this ->_get( 'logo' )? $this ->_get( 'logo' ): $logo ;
     $padding = $this ->_get( 'padding' )? $this ->_get( 'padding' ): $padding ;
     $path = './Uploads/qrcode/' ;
     $QR = $path . 'qrcode.png' ;
     vendor( "phpqrcode.phpqrcode" );
         QRcode::png( $text , $QR , $level , $size , $padding );
     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 );
     }
     header( "Content-Type:image/jpg" );
     imagepng( $QR );
}

       写好后,图片地址直接引用即可,引用详参见下方(本站已实现)。

引用说明

       引用地址:http://www.xcsoft.cn/public/qrcode

       text:需要生成二维码的数据,默认:http:www.xcsoft.cn

       size:图片每个黑点的像素,默认4

       level:纠错等级,默认L

       padding:默认2 图片外围空白大小

       logo:完整地址,默认为空

你可能感兴趣的:(Thinkphp)