合成海报图片

/*合成海报图片*/
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;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值