如何使用php imagemagick draw方法用白色像素替换背景像素

时间:2016-11-26 11:05:06

标签: php imagemagick

我正在使用php imagick扩展,但我不明白如何使用draw方法更改图像的背景颜色。

enter image description here

1 个答案:

答案 0 :(得分:1)

您正在关注的polyvore教程

  

接下来,我们用白色替换背景,从像素开始   位于2,2的xy位置。我们从那里开始,因为它差不多   肯定是背景的一部分,而不是产品。 ImageMagick有   一个Draw命令,用于替换与颜色相同的像素   用新颜色开始像素。我们使用Draw来替换背景像素   (与我们的起始像素颜色相同的那些)具有白色像素。我们也   使用具有模糊因子的绘制,以便它也替换像素   与起始像素的颜色相似,以解释细微的渐变   和背景的变化。

您呈现的图像已经具有白色背景,显然您已成功完成此步骤。剩下的就是将白色像素转换为透明。从命令行,它的

magick UQ1U4.png -fill none -fuzz 5% -draw 'color 2,2 floodfill' out.png

这使得与(2,2)像素(靠近左上角像素)颜色相同的任何像素都是透明的(颜色"无")。 Floodfill会重新处理与目标像素的颜色匹配的任何像素,并且是目标像素或正在重新着色的另一个像素的邻居。

您可以通过PHP IMagick界面执行相同的操作:

bool Imagick::floodFillPaintImage ( mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert [, int $channel =magick::CHANNEL_DEFAULT ] )' 

使用与命令行中相同的参数。

如果您使用的是旧版ImageMagick,请使用convert代替magick。如果您使用的是Windows,请使用%%而不是%