laravel中使用Intervention/image 图片处理把图片处理成圆形
阅读 (129) 2020-08-31 21:12:13
Intervention/image 将图片处理成圆形
laravel中使用Intervention/image 图片处理把图片处理成圆形
// 用户头像
$headimg = Image::make($user->headimgurl)->resize(100, 100);
// 这是画布和背景
$new= Image::canvas(100,100, '#D85F57');
// 把头像处理成圆形
$r = $headimg->width() / 2;
for ($x = 0; $x < $headimg->width(); $x++) {
for ($y = 0; $y < $headimg->height(); $y++) {
$c = $headimg->pickColor($x, $y, 'array');
if (((($x - $r) * ($x - $r) + ($y - $r) * ($y - $r)) < ($r * $r))) {
$new->pixel($c, $x, $y);
}
}
}
// 把图片保存下来
$new->save(storage_path('app/public/share/test.jpg'), 'jpg');
这个方法是别处看来的,个人觉得处理结果不佳,我最后的解决方案是用另一张中间有圆形镂空的图片做为遮罩,盖在头像图片上即可。
更新于:2020-10-22 11:02:11