(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
$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);
$combined->floodfillPaintImage("black", 1, $target, $x, $y, false);
$combined->writeImage("floodfillpaint_result.png");
?>
Вывод приведённого примера будет похож на: