php 将图片裁剪成圆形图片,PHP将图片将切成圆角

最近做小程序生成海报需要把用户的头像展示出来,从微信获取的头像默认是正方形的,不是很美观。

需要把图片处理成圆形的,用PHP很好实现:/**

* 将图片切成圆角

* @param  string $imgpath 本地磁盘图像路径

* @return file 图像流

*/

public function yuanjiao($imgpath){

$ext = pathinfo($imgpath);

$src_img = null;

switch ($ext['extension']) {

case 'jpg':

$src_img = imagecreatefromjpeg($imgpath);

break;

case 'png':

$src_img = imagecreatefrompng($imgpath);

break;

}

list($w,$h)  = getimagesize($imgpath);

$w   = min($w, $h);

$h   = $w;

$img = imagecreatetruecolor($w,$h);

imagesavealpha($img, true);//这一句一定要有

//拾取一个完全透明的颜色,最后一个参数127为全透明

$bg = imagecolorallocatealpha($img, 255, 255, 255, 127);

imagefill($img, 0, 0, $bg);

$r = $w / 2; //圆半径

$y_x = $r; //圆心X坐标

$y_y = $r; //圆心Y坐标

for ($x = 0; $x 

for ($y = 0; $y 

$rgbColor = imagecolorat($src_img, $x, $y);

if (((($x - $r) * ($x - $r) + ($y - $r) * ($y - $r)) 

imagesetpixel($img, $x, $y, $rgbColor);

}

}

}

return $img;

}

传入本地图像路径,返回的结果可直接用于GD图像二次处理。

如需要保存处理后的图像:$img      = 'D:/php/images/test.jpg';//原图像

$save_img = 'D:/php/images/1.jpg';//处理后的图像

$headimg_source = self::yuanjiao($img);

imagejpeg($headimg_source,$save_img);

imagedestroy($headimg_source);

8fcba6878d9d1195c2ceaad796f4437e.png 处理后的   

4a632efcebf5cc237067ee7b8635c011.png

转载请注明本文标题和链接:《 PHP将图片将切成圆角 》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值