Заливка замкнутых контуров в PHP
 
			Все мы знаем, что такое заливка замкнутых контуров. Данная опция присутствует в Paint ("ведро с краской"), и она заливает замкнутую область определённым цветом. Аналогичная заливка замкнутых контуров есть и в PHP, и о ней я сейчас и расскажу.
Не буду томить Вас ожиданием, а сразу покажу код, в котором замкнутый жёлтый прямоугольник на зелёном фоне заливается чёрным цветом:
<?php
  //Создаём "чистый холст" для рисования
  $i = imageCreate(200, 300);
  //Устанавливаем зелёный цвет
  $color = imageColorAllocate($i, 0, 255, 0);
  //Устанавливаем толщину линии в 3 пикселя
  imageSetThickness($i, 3);
  //Устанавливаем жёлтый цвет
  $color = imageColorAllocate($i, 255, 255, 0);
  //Рисуем контур прямоугольника
  imageRectangle($i, 50, 50, 150, 250, $color);
  $color = imageColorAllocate($i, 0, 0, 0);
  //Заливаем замкнутый контур
  imageFill($i, 140, 100, $color);
  //Отправляем заголовок
  Header("Content-type: image/jpeg");
  //Выводим изображение
  imageJpeg($i);
  //Высвобождаем память
  imageDestroy($i);
?>
	Я очень подробно прокомментировал весь код, вдобавок, все эти функции были использованы нами ранее в предыдущих статьях, поэтому здесь вопросов у Вас возникнуть не должно. А вот новую функцию imageFill() неоходимо пояснить.
Функция imageFill(resource $image, int $x, int $y, int $color) позволяет залить замкнутую область на изображении image, внутри которой находится точка с координатами x и y, цветом color. Если Вы не поняли предыдущее предложение, то перечитайте его ещё раз внимательнейшим образом. Чтобы стало ещё понятнее, давайте вспомним Paint и инструмент "Заливка". Если Вы знаете, как он работает, то Вам будет легко понять функцию imageFill(). Фактически, image - это Ваша рабочая область в Paint, на которой Вы рисуете, а x и y - это та точка, в которую Вы бы кликнули мышкой для заливки области в Paint. И цвет заливки color Вы также в Paint предварительно выбираете. Вот такая простая и понятная аналогия.
На сегодня всё, до скорой встречи!
- 
					Создано 26.03.2011 15:13:10  
- 
					 Михаил Русаков Михаил Русаков
 
			 
			 
		 
				 
			 
				 
				 
				 
				
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.