English | 简体中文 | 繁體中文
查询

Imagick::floodFillPaintImage()函数—用法及示例

「 在图像中填充特定的颜色,从给定的起始点开始,根据指定的填充规则进行填充 」


函数名:Imagick::floodFillPaintImage()

函数描述:该函数用于在图像中填充特定的颜色,从给定的起始点开始,根据指定的填充规则进行填充。

适用版本:该函数在PHP Imagick扩展版本3.3.0以上可用。

用法:

Imagick::floodFillPaintImage ( mixed $fillColor , float $fuzz , mixed $targetColor , int $x , int $y , bool $invert [, int $channel = Imagick::CHANNEL_DEFAULT ] ) : bool

参数说明:

  • $fillColor: 填充颜色,可以是ImagickPixel对象、字符串表示的颜色值或数组表示的颜色值。
  • $fuzz: 容差值,用于指定填充颜色与目标颜色之间的差异容忍度,范围在0到1之间。
  • $targetColor: 目标颜色,可以是ImagickPixel对象、字符串表示的颜色值或数组表示的颜色值。
  • $x, $y: 起始点的坐标,指定了填充的起始位置。
  • $invert: 是否反转填充,如果为true,则填充与目标颜色相同的区域;如果为false,则填充与目标颜色不同的区域。
  • $channel: 填充的通道,默认为Imagick::CHANNEL_DEFAULT。

返回值:如果成功填充了图像,则返回true;否则返回false。

示例:

// 创建一个Imagick对象并读取图像
$image = new Imagick('image.jpg');

// 创建一个填充颜色对象
$fillColor = new ImagickPixel('blue');

// 创建一个目标颜色对象
$targetColor = new ImagickPixel('white');

// 在图像中以坐标(100, 100)为起点,将与目标颜色相同的区域填充为蓝色
$image->floodFillPaintImage($fillColor, 0.1, $targetColor, 100, 100, false);

// 显示填充后的图像
header('Content-Type: image/jpeg');
echo $image;

注意事项:

  • 该函数需要安装Imagick扩展并启用相关库(如ImageMagick)。
  • 填充颜色和目标颜色可以使用ImagickPixel对象、字符串表示的颜色值(如"red")或数组表示的颜色值(如[255, 0, 0])。
  • 填充颜色和目标颜色的格式应与图像的色彩模式相匹配,否则可能会导致意外结果。
  • 容差值$fuzz用于指定填充颜色与目标颜色之间的差异容忍度,较大的容差值会导致更宽泛的填充范围。
  • $invert参数用于控制填充的区域,如果为true,则填充与目标颜色相同的区域;如果为false,则填充与目标颜色不同的区域。
补充纠错
上一个函数: Imagick::flopImage()函数
热门PHP函数
分享链接