imagefilltoborder

Flood fill to specific color

&reftitle.description; `bool` `imagefilltoborder` `GdImage` `image` `int` `x` `int` `y` `int` `border_color` `int` `color`

`imagefilltoborder` performs a flood fill whose border color is defined by `border_color`. The starting point for the fill is `x`, `y` (top left is 0, 0) and the region is filled with color `color`.

&reftitle.parameters;

&gd.image.description;

`x`

- x-coordinate of start.

`y`

- y-coordinate of start.

`border_color`

- The border color. &gd.identifier.color;

`color`

- The fill color. &gd.identifier.color;

&reftitle.returnvalues;

&return.success;

&reftitle.changelog;

&Version; | &Description;
&gd.changelog.image-param;

&reftitle.examples;

### Filling an ellipse with a color

    <?php
    // Create the image handle, set the background to white
    $im = imagecreatetruecolor(100, 100);
    imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 255, 255, 255));

    // Draw an ellipse to fill with a black border
    imageellipse($im, 50, 50, 50, 50, imagecolorallocate($im, 0, 0, 0));

    // Set the border and fill colors
    $border = imagecolorallocate($im, 0, 0, 0);
    $fill = imagecolorallocate($im, 255, 0, 0);

    // Fill the selection
    imagefilltoborder($im, 50, 50, $border, $fill);

    // Output and free memory
    header('Content-type: image/png');
    imagepng($im);
    imagedestroy($im);
    ?>

&example.outputs.similar; Output of example : Filling an ellipse with a color
&reftitle.notes;

The algorithm does not explicitly remember which pixels have already been set, but rather infers that from the color of the pixel, so it cannot distinguish between freshly set pixels and pixels that are already there. That means chosing any fill color that is already used in the image may yield undesired results.