Заливка замкнутой области
Для заливки замкнутой области используются функции imagefill
и imagefilltoborder
.
Функция imagefill
закрашивает все прилегающие пиксели, цвет которых совпадает с цветом начальной точки, а функция imagefilltoborder
закрашивает все прилегающие пиксели, цвет которых не совпадает с цветом заданным с помощью четвертого параметра - border
int imagefill ( resource image, int x, int y, int color )
где,
- image - идентификатор изображения;
- x,y - координаты точки, с которой будет начата заливка;
- color - цвет.
int imagefilltoborder ( resource image, int x, int y, int border, int color )
где,
- image - идентификатор изображения;
- x,y - координаты точки, с которой будет начата заливка;
- border - цвет границы.
- color - цвет.
Пример 27. Заливка замкнутой области с помощью функции imagefill
:
<?php header ("Content-type: image/png"); $im = imagecreatetruecolor(320, 240); $red = imagecolorallocate($im, 255, 0, 0); $green = imagecolorallocate($im, 0, 255, 0); $blue = imagecolorallocate($im, 0, 0, 255); imagerectangle($im,50,50,270,190,$blue); imagerectangle($im,100,100,220,130,$red); imagefill($im,160,120,$green); imagepng($im); imagedestroy($im); ?>
Результат работы этой программы выглядит следующим образом:
Пример 28. Заливка замкнутой области с помощью функции imagefilltoborder
:
<?php header ("Content-type: image/png"); $im = imagecreatetruecolor(320, 240); $red = imagecolorallocate($im, 255, 0, 0); $green = imagecolorallocate($im, 0, 255, 0); $blue = imagecolorallocate($im, 0, 0, 255); imagerectangle($im,50,50,270,190,$blue); imagerectangle($im,100,100,220,130,$red); imagefilltoborder($im,160,120,$blue,$green); imagepng($im); imagedestroy($im); ?>
Результат работы этой программы выглядит следующим образом:
Используйте функции imagefill
и imagefilltoborder
только если абсолютно уверены в том
что закрашивая область замкнута. По возможности, старайтесь использовать функции imagefiledrectangle
, imagefilledpolygon
и imagefilledarc
.
Более подробно, о том, как работают функции закрашивания замкнутых областей можно прочитать тут.
Ссылки по теме
- PHP Manual - функция imagefill;
- PHP Manual - функция imagefilltoborder;
- PHP Manual - функция imagefilledrectangle;
- PHP Manual - функция imagefilledarc;
- PHP Manual - функция imagefilledpolygon.