Заливка замкнутой области
Автор: mike (www.codenet.ru)
Для заливки замкнутой области используются функции 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 - цвет.
Пример 1. Заливка замкнутой области с помощью функции 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);
?>
Результат работы этой программы выглядит следующим образом:
Пример 2. Заливка замкнутой области с помощью функции 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
.
Более подробно, о том, как работают функции закрашивания
замкнутых областей можно прочитать тут.
Ссылки по теме