(PHP 4, PHP 5, PHP 7, PHP 8)
imagefilltoborder — Заливка цветом
imagefilltoborder() производит заливку области, ограниченной цветом border_color
. Начальная координата x
, y
(левый верхний угол имеет координаты 0, 0), а область закрашивается цветом color
.
image
Объект GdImage, который возвращает одна из функций, создающих изображения, например, imagecreatetruecolor().
x
x-координата начала.
y
y-координата начала.
border_color
Цвет границы заливки. Идентификатор цвета, созданный функцией imagecolorallocate().
color
Цвет заливки. Идентификатор цвета, созданный функцией imagecolorallocate().
Возвращает true
в случае успешного выполнения или false
, если возникла ошибка.
Версия | Описание |
---|---|
8.0.0 | Параметр image теперь ожидает экземпляр класса GdImage; раньше параметр ждал корректный gd -ресурс (resource). |
Пример #1 Закрашивание эллипса
<?php
// создание изображения, установка белого фона
$im = imagecreatetruecolor(100, 100);
imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 255, 255, 255));
// рисование эллипса закрашенного черным цветом
imageellipse($im, 50, 50, 50, 50, imagecolorallocate($im, 0, 0, 0));
// установка цвета границы заливки
$border = imagecolorallocate($im, 0, 0, 0);
$fill = imagecolorallocate($im, 255, 0, 0);
// заливка области
imagefilltoborder($im, 50, 50, $border, $fill);
// вывод и освобождение памяти
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Вывод приведённого примера будет похож на:
Алгоритм не запоминает явно, какие пиксели уже были установлены, а скорее делает вывод по цвету пикселя, поэтому он не может отличить только что установленные пиксели от пикселей, которые уже есть. Это означает, что выбор любого цвета заливки, который уже используется в изображении, может привести к нежелательным результатам.