Changes the color value of any pixel that matches target

- « Imagick::flipImage

- Imagick::flopImage »

- PHP Manual
- Imagick
- Changes the color value of any pixel that matches target

# Imagick::floodFillPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::floodFillPaintImage — Changes the color value of any pixel that matches target

### Description

public Imagick::floodFillPaintImage(
mixed `$fill`,
float `$fuzz`,
mixed `$target`,
int `$x`,
int `$y`,
bool `$invert`,
int `$channel` = Imagick::CHANNEL_DEFAULT
): bool

Changes the color value of any pixel that matches target and is an immediate neighbor. This method is a replacement for deprecated Imagick::paintFloodFillImage(). This method is available if Imagick has been compiled against ImageMagick version 6.3.8 or newer.

### Parameters

`fill`

  ImagickPixel object or a string containing the fill color

`fuzz`

  The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color.

`target`

  ImagickPixel object or a string containing the target color to paint

`x`

  X start position of the floodfill

`y`

  Y start position of the floodfill

`invert`

  If `true` paints any pixel that does not match the target color.

`channel`

  Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to `Imagick::CHANNEL_DEFAULT`. Refer to this list of channel constants

### Return Values

Returns `true` on success.

### Examples

Example #1 Imagick::floodfillPaintImage() example

    <?php

    /* Create new imagick object */
    $im = new Imagick();

    /* create red, green and blue images */
    $im->newImage(100, 50, "red");
    $im->newImage(100, 50, "green");
    $im->newImage(100, 50, "blue");

    /* Append the images into one */
    $im->resetIterator();
    $combined = $im->appendImages(true);

    /* Save the intermediate image for comparison */
    $combined->writeImage("floodfillpaint_intermediate.png");

    /* The target pixel to paint */
    $x = 1;
    $y = 1;

    /* Get the color we are painting */
    $target = $combined->getImagePixelColor($x, $y);

    /* Paints pixel in position 1,1 black and all neighboring
       pixels that match the target color */
    $combined->floodfillPaintImage("black", 1, $target, $x, $y, false);

    /* Save the result */
    $combined->writeImage("floodfillpaint_result.png");
    ?>

The above example will output something similar to: