PHP用gd库在海报上生成圆角头像

// 头像路径,本地和网页路径都行(改成自己的)
$headimgurl = 'https://XXX.png'; 
//通过imagecreatefromstring转gd图片资源
$headimg = imagecreatefromstring(file_get_contents($headimgurl));
//将头像放大缩小成想要的大小(改成自己的)这里根据实际情况,我的宽高都是460
$imageSize = 460;
$resizedImage = imagescale($headimg,$imageSize,$imageSize);

//指定一个背景(改成自己的)我这里以整个海报模板作为背景图
$bg_img = '/static/images/poster_2.png';	//本地和网页路径都行
$bg_img = imagecreatefromstring(file_get_contents($bg_img));	//获取图片资源
//生成圆角头像
$new_img = $this->addRoundedCorners($resizedImage,$bg_img);
//$new_img就是我们想要的带圆角头像的海报了

function addRoundedCorners($inputFile,$bg_img) {
   $image = $inputFile;
   $w = imagesx($image);//头像宽度 正方形的
   $h = imagesy($image);//头像宽度 正方形的
   $w = min($w, $h);
   $h = $w;
   //这一句一定要有
   imagesavealpha($bg_img, true);
   $r = $w / 2; //圆半径
   for ($x = 0; $x < $w; $x++) {
       for ($y = 0; $y < $h; $y++) {
           $rgbColor = imagecolorat($image, $x, $y);
           if (((($x - $r) * ($x - $r) + ($y - $r) * ($y - $r)) < ($r * $r))) {
               imagesetpixel($bg_img, $x+310, $y+515, $rgbColor);
               //这里用x偏移310,y偏移515是头像要画在海报的坐标点(改成自己的)
           }
       }
   }
   return $bg_img;
}
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值