1.在thinkphp5.1中安裝phpqrcode
在github下載下傳phpqrcode
https://github.com/t0k4rt/phpqrcode
并把phpqrcode解壓到thinkphp目錄的 extend/phpqrcode 中
2.使用
在common.php中使用
/**
* 生成二維碼
* @param string $url 要生成的路徑
* @param int $code 生成圖檔的名稱
* @param string $urlImgBg 生成的背景圖檔
* @param int $x 生成的 左到右的距離
* @param int $y 生成的上到下的距離
* @param string $level
* @param int $size 生成二維碼大小
* @return string
*/
function qrcode($url='https://www.baidu.com',$code = 111, $urlImgBg = './uploads/code/MG293.png', $x = 6, $y = 1340, $level = 'L', $size = 6){
// 導入Phpqrcode插件檔案
require_once EXTEND_PATH.'phpqrcode/phpqrcode.php';
// 容錯級别
$errorCorrectionLevel = $level;
// 生成圖檔大小
$matrixPointSize = intval($size);
// 生成二維碼圖檔
$object = new \QRcode();
// 這個一定要加上,清除緩沖區
ob_end_clean();
// 第二個參數false的意思是不生成圖檔檔案,如果你寫上‘picture.png’則會在根目錄下生成一個png格式的圖檔檔案
$path = './uploads/code/';
$QR =$QRB = $path.$code.".png";
$object::png($url, $QR, $errorCorrectionLevel, $matrixPointSize, 1);
//添加背景圖檔合成
$dst_path = $urlImgBg;//背景圖檔路徑
$src_path = $QR;//覆寫圖
// $src_path = $path.$user_id.".png";//覆寫圖
//建立圖檔的執行個體
$dst = imagecreatefromstring(file_get_contents($dst_path));
$src = imagecreatefromstring(file_get_contents($src_path));
//擷取覆寫圖圖檔的寬高
list($src_w, $src_h) = getimagesize($src_path);
//将覆寫圖複制到目标圖檔上,最後個參數100是設定透明度(100是不透明),這裡實作不透明效果
imagecopymerge($dst, $src, $x, $y, 0, 0, $src_w, $src_h, 100); //位置可以自己調試
// @unlink($QIMG); //删除二維碼與logo的合成圖檔
@unlink($QRB); //删除伺服器上二維碼圖檔
// header("Content-type: image/png");
imagepng($dst,'./uploads/code/'.$code.'.png');//根據需要生成相應的圖檔
// imagejpeg($dst,'../uploads/user/'.$uid.'.jpg');
imagedestroy($dst);
imagedestroy($src);
return '/uploads/code/'.$code.'.png';
}