laravel中使用Intervention/image 图片处理把图片处理成圆形 

阅读 (460)
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
返回顶部