Заливка замкнутых контуров в 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 предварительно выбираете. Вот такая простая и понятная аналогия.
На сегодня всё, до скорой встречи!
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.