Php 如何使用干涉图像删除图像中的背景
例如,我试图删除徽标中的白色背景以获得透明图标 在这张照片上 是.jpg,我想用E背景删除(如果可能,只删除外部的内容,否则删除所有白色背景) 我试着用laravel来编写代码Php 如何使用干涉图像删除图像中的背景,php,intervention,Php,Intervention,例如,我试图删除徽标中的白色背景以获得透明图标 在这张照片上 是.jpg,我想用E背景删除(如果可能,只删除外部的内容,否则删除所有白色背景) 我试着用laravel来编写代码 public function resizeImage($logo, $placeName, $domain) { $mask = Image::make($logo) ->contrast(100) ->contrast(50) ->trim(
public function resizeImage($logo, $placeName, $domain)
{
$mask = Image::make($logo)
->contrast(100)
->contrast(50)
->trim('top-left', null, 40)
->invert(); // invert it to use as a mask
$new_image = Image::canvas($mask->width(), $mask->height(), '#000000')
->mask($mask)
->resize(32,32, function ($constraint) {
$constraint->aspectRatio();
$constraint->upsize();
})
->encode('png', 100);
$route = $domain . '/favicon/favicon.png';
Storage::disk('gcs')
->put($route, $new_image);
$route = Storage::disk('gcs')
->url($route);
return $route;
}
但这是我的结果
图像失去颜色(黑色)
我做错了什么?我觉得我很接近实现它,但是,我需要图标有颜色
$img = Image::canvas(800, 600);
调用无背景色的canvas方法。
查看更多有关此功能的信息:$new\u image=image::canvas($mask->width(),$mask->height())这为什么会有所不同?给你的答案添加一些解释。看官方文件显然问题出在面具上,但如果我尝试使用面具以外的方法,结果是一幅完全黑色的图像