(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");
?>
Результатом выполнения данного примера будет что-то подобное: