在iMagick(PHP)语法中将给定颜色的所有像素转换为透明?

在iMagick(PHP)语法中将给定颜色的所有像素转换为透明?,php,transparency,imagick,Php,Transparency,Imagick,我想使用iMagick将给定颜色转换为透明度。我找到了一种方法,但它的行为就像一个油漆桶,而不是检查整个图像 对于以下示例,我将使用以下内容: $transparentColor = new ImagickPixel('transparent'); $image->floodFillPaintImage($transparentColor, 20000, "#0009c5", 0, 0, false, Imagick::CHANNEL_ALPHA); 我想看到的结果是所有蓝色区域都

我想使用iMagick将给定颜色转换为透明度。我找到了一种方法,但它的行为就像一个油漆桶,而不是检查整个图像

对于以下示例,我将使用以下内容:

$transparentColor = new ImagickPixel('transparent');  
$image->floodFillPaintImage($transparentColor, 20000, "#0009c5", 0, 0, false, Imagick::CHANNEL_ALPHA);
我想看到的结果是所有蓝色区域都变成透明。不幸的是,“填充”似乎是该函数的关键点,因此在遇到非“目标”颜色时停止

有人知道如何使用iMagick(不是命令行imageMagick)将所有蓝色区域变成透明区域吗

提前谢谢

试试看:

$image->transparentPaintImage($targetColor, $alphaLevel, $fuzz, false);
如果透明区域“凌乱”,可能有助于去除:

$image->despeckleimage();

医生:

可能的重复似乎已经奏效了!唯一的例外是该方法似乎不接受ImagicPixel(“透明”)。因此它最终使用了:
$image->transparentpaintpaignage($targetColor,0.0,$fuzz,false)非常感谢您的帮助!非常感谢!哦,你说得对。重新读取文档时,第二个参数是alpha级别(0.0到1.0)。谢谢你的更正-我已经编辑了我的答案。