生活随笔
收集整理的這篇文章主要介紹了
tp5 生成二维码并与背景图合并
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.安裝phpqrcode,命令:composer?require?endroid/qrcode? ? ?如果已安裝無需重復安裝
2.控制器中引用:use?Endroid\QrCode\QrCode
3.查看自己PHP版本:我的是7.3,因為版本不同,使用方法可能有區別,具體看官方文檔
4.我的要求是生成帶邀請碼的分享頁面,步驟及代碼如下:
步驟一:先用qrcode生成二維碼,放到目錄下步驟二:二維碼與背景圖合并,然后替換上一步生成的二維碼步驟三:返回生成的圖片地址
/*** 生成二維碼*/public function build(){$user_id = $this->auth->id;if (empty($user_id)) $this->error('請登錄');$userInfo = User::where('id', $user_id)->field('id,code')->find();$url = Config('url_domain_root') . '?code = ' . $userInfo->code;// 生成二維碼$writer = new PngWriter();$qrCode = QrCode::create($url)->setEncoding(new Encoding('UTF-8'))->setSize(300)->setMargin(2)->setRoundBlockSizeMode(new RoundBlockSizeModeMargin())->setForegroundColor(new Color(0, 0, 0))->setBackgroundColor(new Color(255, 255, 255));$result = $writer->write($qrCode);// 二維碼保存到目錄下$code_path = ROOT_PATH . 'public/code/' . $user_id . '_code.png';$result->saveToFile($code_path);// 與背景圖合并$dst_path = ROOT_PATH . 'public/share.png'; //背景圖片路徑$src_path = $code_path;//覆蓋圖//創建圖片的實例$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, 220, 900, 0, 0, $src_w, $src_h, 80);//如果覆蓋圖圖片本身帶透明色,則使用imagecopy方法//imagecopy($dst, $src, 10, 10, 0, 0, $src_w, $src_h);//輸出圖片// list($dst_w, $dst_h, $dst_type) = getimagesize($dst_path);// switch ($dst_type) {// case 1://GIF// header('Content-Type: image/gif');// imagegif($dst);// break;// case 2://JPG// header('Content-Type: image/jpeg');// imagejpeg($dst);// break;// case 3://PNG// header('Content-Type: image/png');// imagepng($dst);// break;// default:// break;// }header("Content-type: image/png");$res = imagepng($dst, $code_path);//根據需要生成相應的圖片imagedestroy($dst);imagedestroy($src);$returnImg = Config('url_domain_root') . 'uploads/code/' . $user_id . '_code.png';if ($res) $this->success('獲取成功!', $returnImg);$this->error('再試一次!');}
總結
以上是生活随笔為你收集整理的tp5 生成二维码并与背景图合并的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。