/*合成海报图片*/ public function createCourseImg($proid){ //header("Content-type:image/jpeg"); $proinfo = (new LaProCircle())->select(['id','image','title','aliasname'])->find($proid); if($proinfo){ $proinfo = $proinfo->toArray(); }else{ return ""; } //背景图片叠加 $backimg = public_path()."/image/template_pro1.jpg";//之前为固定 list($width,$height)=getimagesize($backimg); $im = imagecreatetruecolor($width, $height);//生成一个图片 //$bgcolor = imagecolorallocate($im, 255, 255, 255);//为新图片设置背景色 $e = imagecreatefromjpeg($backimg); imagecopyresampled($im,$e,0,0,0,0,750,980,$width,$height); //两行文字叠加 $s=$proinfo['title']; //$s2="邀请你来听~"; $width_int = 365; //文字相对位置 $len = mb_strlen($s,'gb2312'); $width_int = $width_int - ($len/2)*18; //dd($width_int); $textcolor = imagecolorallocate($im, 255, 255, 255);//为图片里的文字设置颜色 //给图片里添加文字,比imagestring好用。第一个参数是字体大小,第二个参数是旋转角度,第三、四个参数是位置 imagettftext($im,30,0,$width_int,445,$textcolor,public_path().'/fonts/simhei.ttf',$s); //imagettftext($im,20,0,130,97,$textcolor,'./Public/fonts/simhei.ttf',$s2); //活动图片 叠加 $handimg = $proinfo['image']; $imginfo= getimagesize($handimg); $mime = $imginfo['mime']; list($width,$height)=getimagesize($handimg); if($mime == 'image/png'){ $e = imagecreatefrompng($handimg); }else{ $e = imagecreatefromjpeg($handimg); } //将图片$e图片粘贴到新图片中去,第3/4个参数是调整截图在大图中的位置,5/6参数是在原图中截图截取的位置,7/8参数是截图在大图中的大小,9/10参数是截图在原图中的大小 imagecopyresampled($im,$e,300,198,0,0,150,150,$width,$height); //unlink($handimg);//会员头像在被加载后删除 //图片覆盖层 叠加(变圆) $erweima = public_path()."/image/template_pro2.png"; list($width,$height)=getimagesize($erweima); $e = imagecreatefrompng($erweima); //将图片$e图片粘贴到新图片中去,第3/4个参数是调整截图在大图中的位置,5/6参数是在原图中截图截取的位置,7/8参数是截图在大图中的大小,9/10参数是截图在原图中的大小 imagecopyresampled($im,$e,0,0,0,0,$width,$height,$width,$height); //二维码叠加 $erweima = $this->uploadcodeimgs('http://douliao.net/'.$proinfo['aliasname']); $erweima = public_path()."/upload/".$erweima; //dd($erweima); list($width,$height)=getimagesize($erweima); $e = imagecreatefrompng($erweima); //将二维码$e图片粘贴到新图片中去,第3/4个参数是调整二维码在大图中的位置,5/6参数是在二维码原图中截取二维码的位置,7/8参数是二维码在大图中的大小,9/10参数是二维码在原图中的大小 imagecopyresampled($im,$e,276,608,0,0,200,200,$width,$height); unlink($erweima);//二维码图片在被加载后删除 $randname = $proid; $filename= public_path()."/upload/$randname.jpg"; imagejpeg($im,$filename,90); imagedestroy($im); //dd($filename); try { $newImagesName = $randname.".jpg"; \App\Services\OSS::publicUpload('douliaofiles', 'projectimg/'.$newImagesName, $filename, []); $aliOssUrl = \App\Services\OSS::getPublicObjectURL('douliaofiles','projectimg/'.$newImagesName);// 获取上传后地址 } catch (\Exception $exception) { return ""; } unlink($filename);//上传后删除 return $aliOssUrl; }
合成海报图片
最新推荐文章于 2020-08-09 18:26:30 发布