效果展示
实现过程
public function goodsPoster()
{
include_once CMF_ROOT . 'vendor/poster/Poster.php';
$userInfo=$this->user();//用户信息
$goodsImg = CMF_ROOT . 'public/static/images/ms.png';
$goodsInfo=['goods_id'=>1,'goodname'=>'独臂张烧鸡','url'=>$goodsImg];//自行获取商品信息
$gd_img = new ImgGD($userInfo,$goodsInfo);
$url = $gd_img->createShareImg();
return $url;
}
Poster.php
<?php
namespace imggb;
/**
* 图片处理
* @author xiaozhe
*/
class ImgGD{
private $userInfo;
private $goodsInfo;
public function __construct($userInfo, $goodsInfo) {
$this->userInfo = $userInfo;
$this->goodsInfo = $goodsInfo;
}
/**
* 创建分享海报
*/
public function createShareImg(){
// 获取用户信息
$userinfo = $this->userInfo;
// 获取商品信息
$foodsinfo = $this->goodsInfo;
// 1 获取背景图尺寸
list($bg_w,$bg_h) = getimagesize("E:/down/phpstudy_pro/WWW/feiyi-center/public/static/images/poster_bg.jpg");
// 2 创建画图
$img = @imagecreatetruecolor($bg_w,$bg_h);
// 3 填充画布背景颜色
$img_bg_color = imagecolorallocate($img,255,255,255);
imagefill($img,0,0,$img_bg_color);
// 4 将背景图填充到画布
$bg_img = $this->getImgReource("E:/down/phpstudy_pro/WWW/feiyi-center/public/static/images/poster_bg.jpg");
imagecopyresized($img,$bg_img,0,0,0,0,$bg_w,$bg_h,$bg_w,$bg_h);
// 5生成用户二维码 并填充到画布
include_once __DIR__.'/Code.php';
$codedir = CMF_ROOT . 'public/upload/code';
if(!is_dir($codedir))//检测目录是否存在
{
mkdir($codedir,0777,true);
}
$codepath = $codedir."/".md5($foodsinfo['goods_id'].$userinfo['userid']).'.png';//二维码保存路径
$code