生活随笔
收集整理的這篇文章主要介紹了
ThinkPHP框架整合phpqrcode生成二维码DEMO
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
? ThinkPHP框架發(fā)展到今天功能已經(jīng)變得是非常強(qiáng)大了,但是ThinkPHP框架中沒有二維碼相關(guān)的庫(kù),因此我們可以通過整合phpqrcode來完成生成二維碼的功能。想使用phpqrcode首先就要把phpqrcode代碼包下載下來,大家可以去官網(wǎng)下載,也可以在網(wǎng)絡(luò)上搜索進(jìn)行下載,這里我為大家提供的有一份?phpqrcode代碼包。下載地址:phpqrcode代碼包。
? ? ? ? 下面開始講述如何在ThinkPHP框架中整合phpqrcode生成二維碼,這是我已經(jīng)整合好的樣例,感興趣的可以下載下來進(jìn)行學(xué)習(xí)。
? ? ? ? 下載:ThinkPHP框架整合phpqrcode生成二維碼DEMO
?
1、將phpqrcode整合到ThinkPHP框架
?
在“ThinkPHP\Library\Vendor\”下新建目錄phpqrcode,將phpqrcode代碼壓縮包內(nèi)容解壓到該文件夾下。
?
2、調(diào)用phpqrcode生成二維碼
?
在控制器下或者在“/Application/Common/Common/function.php”添加如下函數(shù)方法(本人是在控制器中寫的):
?
[php]?view plain
?copy ????public?function?qrcode($url?=?"http://blog.csdn.net/zhihua_w",?$level?=?3,?$size?=?4)??????{??????????Vendor('phpqrcode.phpqrcode');??????????????????$errorCorrectionLevel?=?intval($level);??????????????????$matrixPointSize?=?intval($size);??????????????????$object?=?new?\QRcode();??????????????????$object->png($url,?false,?$errorCorrectionLevel,?$matrixPointSize,?2);??????}?? ? ? ? 訪問:http://127.0.0.1/thinkphp_phpqrcode/index.php/Home/Index/qrcode?即可看到二維碼
?
?
? ? ? 到這里已經(jīng)可以生成二維碼了;如果想對(duì)二維碼更加個(gè)性化定制的話下面具體說一下png() 函數(shù)的使用。
?
[php]?view plain
?copy png($text,?$outfile?=?false,?$level?=?QR_ECLEVEL_L,?$size?=?3,?$margin?=?4,?$saveandprint=false,?$back_color?=?0xFFFFFF,?$fore_color?=?0x000000);?? ?
①?第一個(gè)參數(shù)$text:就是上面代碼里的URL網(wǎng)址參數(shù);
②?第二個(gè)參數(shù)$outfile:默認(rèn)為否;不生成文件;只將二維碼圖片返回;否則需要給出存放生成二維碼圖片的路徑;
③?第三個(gè)參數(shù)$level:默認(rèn)為L(zhǎng);這個(gè)參數(shù)可傳遞的值分別是L(QR_ECLEVEL_L,7%)、M(QR_ECLEVEL_M,15%)、Q(QR_ECLEVEL_Q,25%)、H(QR_ECLEVEL_H,30%);這個(gè)參數(shù)控制二維碼容錯(cuò)率;不同的參數(shù)表示二維碼可被覆蓋的區(qū)域百分比。利用二維維碼的容錯(cuò)率;我們可以將頭像放置在生成的二維碼圖片任何區(qū)域;
④?第四個(gè)參數(shù)$size:控制生成圖片的大小;默認(rèn)為4;
⑤?第五個(gè)參數(shù)$margin:控制生成二維碼的空白區(qū)域大小;
⑥?第六個(gè)參數(shù)$saveandprint:保存二維碼圖片并顯示出來;$outfile必須傳遞圖片路徑;
⑦?第七個(gè)參數(shù)$back_color:背景顏色;
⑧?第八個(gè)參數(shù)$fore_color:繪制二維碼的顏色;
? ? ?注:第七、第八個(gè)參數(shù)需要傳16進(jìn)制是色值;并且要把“#”替換為“0x”
? ? ? ? ? ? ?例如:
? ? ? ? ? ? ? ? ? ? ? ? 白色:#FFFFFF ?=> ?0xFFFFFF ?
? ? ? ? ? ? ? ? ? ? ? ? 黑色:#000000 ?=> ?0x000000?
如果想了解更多用法,可以直接參考官方網(wǎng)站源代碼了;http://phpqrcode.sourceforge.net/
3、生成帶logo的二維碼
?
在控制器下或者在“/Application/Common/Common/function.php”添加如下函數(shù)方法(本人是在控制器中寫的):
[php]?view plain
?copy ????public?function?qrcodeWithPicture()??????{??????????Vendor('phpqrcode.phpqrcode');??????????$object?=?new?\QRcode();??????????????????$url?=?'http://blog.csdn.net/zhihua_w';??????????????????$errorCorrectionLevel?=?'L';??????????????????$matrixPointSize?=?6;??????????????????$object->png($url,?'zhihua_w.png',?$errorCorrectionLevel,?$matrixPointSize,?2);????????????????????$logo?=?'logo.png';??????????????????$qrcode?=?'zhihua_w.png';??????????????????if?($logo?!==?FALSE)?{??????????????$qrcode?=?imagecreatefromstring(file_get_contents($qrcode));??????????????$logo?=?imagecreatefromstring(file_get_contents($logo));??????????????$qrcode_width?=?imagesx($qrcode);???????????????$qrcode_height?=?imagesy($qrcode);??????????????$logo_width?=?imagesx($logo);???????????????????$logo_height?=?imagesy($logo);??????????????????$logo_qr_width?=?$qrcode_width?/?5;??????????????$scale?=?$logo_width?/?$logo_qr_width;??????????????$logo_qr_height?=?$logo_height?/?$scale;??????????????$from_width?=?($qrcode_width?-?$logo_qr_width)?/?2;??????????????????????????imagecopyresampled($qrcode,?$logo,?$from_width,?$from_width,?0,?0,?$logo_qr_width,??????????????????$logo_qr_height,?$logo_width,?$logo_height);??????????}??????????????????imagepng($qrcode,?'zhihua_w_logo.png');??????????echo?'<img?src="http://127.0.0.1/thinkphp_phpqrcode/zhihua_w_logo.png">';??????}?? ?
方法思路:先調(diào)用phpqrcode生成一張二維碼,再使用php的image相關(guān)函數(shù)將logo圖片添加到生成的二維碼圖片上。
?
至此,此項(xiàng)目完滿結(jié)束!
轉(zhuǎn)載于:https://www.cnblogs.com/wangluochong/p/7806557.html
總結(jié)
以上是生活随笔為你收集整理的ThinkPHP框架整合phpqrcode生成二维码DEMO的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。