Заливка замкнутой области

Автор: content Понедельник, Апрель 9th, 2012 Нет комментариев

Рубрика: Язык PHP

Для заливки замкнутой области используются функции 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);
?>

Результат работы этой программы выглядит следующим образом:

Результат работы функции imagefillПример 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);
?>

Результат работы этой программы выглядит следующим образом:

Результат работы функции imagefilltoborderИспользуйте функции imagefill и imagefilltoborder только если абсолютно уверены в том что закрашивая область замкнута. По возможности, старайтесь использовать функции imagefiledrectangle, imagefilledpolygon и imagefilledarc.

Автор: mike (www.codenet.ru)

Источник: http://www.php.su/articles/?cat=graph&page=009

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты