日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

tp5 生成二维码并与背景图合并

發(fā)布時(shí)間:2023/12/10 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tp5 生成二维码并与背景图合并 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.安裝phpqrcode,命令:composer?require?endroid/qrcode? ? ?如果已安裝無(wú)需重復(fù)安裝

2.控制器中引用:use?Endroid\QrCode\QrCode

3.查看自己PHP版本:我的是7.3,因?yàn)榘姹静煌?#xff0c;使用方法可能有區(qū)別,具體看官方文檔

4.我的要求是生成帶邀請(qǐng)碼的分享頁(yè)面,步驟及代碼如下:

  • 步驟一:先用qrcode生成二維碼,放到目錄下
  • 步驟二:二維碼與背景圖合并,然后替換上一步生成的二維碼
  • 步驟三:返回生成的圖片地址
  • /*** 生成二維碼*/public function build(){$user_id = $this->auth->id;if (empty($user_id)) $this->error('請(qǐng)登錄');$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;//覆蓋圖//創(chuàng)建圖片的實(shí)例$dst = imagecreatefromstring(file_get_contents($dst_path));$src = imagecreatefromstring(file_get_contents($src_path));//獲取覆蓋圖圖片的寬高list($src_w, $src_h) = getimagesize($src_path);//將覆蓋圖復(fù)制到目標(biāo)圖片上,最后個(gè)參數(shù)100是設(shè)置透明度(100是不透明),這里實(shí)現(xiàn)不透明效果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);//根據(jù)需要生成相應(yīng)的圖片imagedestroy($dst);imagedestroy($src);$returnImg = Config('url_domain_root') . 'uploads/code/' . $user_id . '_code.png';if ($res) $this->success('獲取成功!', $returnImg);$this->error('再試一次!');}

    總結(jié)

    以上是生活随笔為你收集整理的tp5 生成二维码并与背景图合并的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。