網上生成二維碼圖片的方法不少,可是通常都是生成一個頁面,頁面內有一個二維碼。可是實際需求每每不是這樣的,須要將二維碼放在頁面某個位置。這就須要有一個方法獲取圖片。php
方法一:緩衝區函數的使用。緩存
ob_start();
ob_get_contents()
ob_end_clean();
二維碼生成的公共方法以下:函數
使用了qrcode類庫。還進行了編碼轉換。編碼
function makeQRcode($txt=""){ Vendor('phpqrcode.phpqrcode'); ob_start(); //生成二維碼圖片 $object = new \QRcode(); $level=3; $size=2; $errorCorrectionLevel =intval($level) ;//容錯級別 $matrixPointSize = intval($size);//生成圖片大小 $object->png($txt,false , $errorCorrectionLevel, $matrixPointSize, 2); $imageString = base64_encode(ob_get_contents()); ob_end_clean(); return $imageString; }
頁面圖片調用:.net
<img src="data:image/png;base64,{$vo['qrcode_sn']}" alt=""/>
方法二:code
查了官方的手冊:http://phpqrcode.sourceforge.net/圖片
方法中沒有再用緩存區:get
public function qrcode(){ $content=I('get.content'); Vendor('phpqrcode.phpqrcode'); //生成二維碼圖片 $object = new \QRcode(); $level=3; $size=2; $errorCorrectionLevel =intval($level) ;//容錯級別 $matrixPointSize = intval($size);//生成圖片大小 $object->png($content,false,$errorCorrectionLevel,$matrixPointSize,2,true); }
圖片調用:io
<img src="{:U('Common/qrcode',array('content'=>$vo['qrcode_sn']))}" alt=""/>
就這麼多了。base64