PHP Conference China 2020

imagefilltoborder

(PHP 4, PHP 5, PHP 7)

imagefilltoborderFlood fill to specific color

Descrierea

imagefilltoborder ( resource $image , int $x , int $y , int $border , int $color ) : bool

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

Parametri

image

O resursă - imagine, întoarsă de una din funcțiile de creare a imaginilor, cum ar fi imagecreatetruecolor().

x

x-coordinate of start.

y

y-coordinate of start.

border

The border color. Un identificator al culorii create cu imagecolorallocate().

color

The fill color. Un identificator al culorii create cu imagecolorallocate().

Valorile întoarse

Întoarce valoarea TRUE în cazul succesului sau FALSE în cazul eșecului.

Exemple

Example #1 Filling an ellipse with a color

<?php
// Create the image handle, set the background to white
$im imagecreatetruecolor(100100);
imagefilledrectangle($im00100100imagecolorallocate($im255255255));

// Draw an ellipse to fill with a black border
imageellipse($im50505050imagecolorallocate($im000));

// Set the border and fill colors
$border imagecolorallocate($im000);
$fill imagecolorallocate($im25500);

// Fill the selection
imagefilltoborder($im5050$border$fill);

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

Exemplul de mai sus va afișa ceva similar cu:

Output of example : Filling an ellipse with a color

add a note add a note

User Contributed Notes 2 notes

up
2
edrad at wanadoo dot fr
17 years ago
Very useful to build a pseudo-sphere with a color gradient...

<?php
$width
= 300;
$center = $width / 2;
$colordivs = 255 / $center;
$im = @imagecreate($width, $width);
$back_color = imagecolorallocate($im, 20, 30, 40);
imagefill($im, 0, 0, $back_color);
for (
$i = 0; $i <= $center; $i++)
{
    
$diametre = $width - 2 * $i;
   
$el_color = imagecolorallocate($im, $i * $colordivs, 0, 0);
   
imagearc($im, $center, $center, $diametre, $diametre, 0, 360, $el_color);
   
imagefilltoborder($im, $center, $center, $el_color, $el_color);
}
imagepng($im);
?>

Dark Skull Software
http://www.darkskull.net
up
0
admin at worldlanguages dot tk
16 years ago
In the example below, for those with newer GD versions, it makes more sense to replace:

imagearc($im, $center, $center, $diametre, $diametre, 0, 360, $el_color);

with:

imageellipse($im, $center, $center, $diametre, $diametre, $el_color);

This is obviously simpler.
To Top