(PECL imagick 2 >= 2.3.0, PECL imagick 3)
Imagick::floodFillPaintImage — Изменяет значение цвета любого пикселя, соответствующего целевому
$fill,$fuzz,$target,$x,$y,$invert,$channel = Imagick::CHANNEL_DEFAULTИзменяет значение цвета любого пикселя, соответствующего целевому и являющегося ближайшим соседом. Данный метод - замена устаревшему Imagick::paintFloodFillImage(). Метод доступен, если модуль Imagick скомпилировали с версией ImageMagick 6.3.8 или старше.
fillОбъект ImagickPixel или строка, содержащая цвет заливки.
fuzzМера округления (fuzz). Например, установите значение fuzz в 10 и красный цвет с интенсивностью 100 и 102 будет интерпретироваться как один и тот же цвет.
targetОбъект ImagickPixel или строка, содержащая целевой цвет для рисования.
xНачальная позиция заливки по X.
yНачальная позиция заливки по Y.
invert
Если значение равно true, закрашивает любой пиксель, не соответствующий
целевому цвету.
channel
Передайте любую корректную для вашего режима канала константу.
Для применения к более чем одному каналу, комбинируйте
константы каналов
с помощью побитовых операторов. По умолчанию равно
Imagick::CHANNEL_DEFAULT.
Обратитесь к списку констант каналов
Функция в случае успешной работы возвращает true.
Пример #1 Пример использования Imagick::floodfillPaintImage()
<?php
/* Создание нового объекта Imagick */
$im = new Imagick();
/* Создание красных, зеленых и синих изображения */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");
/* Сложение изображений в одно*/
$im->resetIterator();
$combined = $im->appendImages(true);
/* Сохранение промежуточного изображения для сравнения */
$combined->writeImage("floodfillpaint_intermediate.png");
/* Целевой пиксель для рисования */
$x = 1;
$y = 1;
/* Получение цвета, которым рисуем */
$target = $combined->getImagePixelColor($x, $y);
/* Закрашивание пикселя в позиции 1,1 черным и всех соседних пикселей,
соответствующих целевому цвету */
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);
/* Сохранение результата */
$combined->writeImage("floodfillpaint_result.png");
?>Вывод приведённого примера будет похож на: