Imagick::floodFillPaintImage

(PECL imagick 2 >= 2.3.0, PECL imagick 3)

Imagick::floodFillPaintImageИзменяет значение цвета любого пикселя, соответствующего целевому

Описание

public Imagick::floodFillPaintImage(
    mixed $fill,
    float $fuzz,
    mixed $target,
    int $x,
    int $y,
    bool $invert,
    int $channel = Imagick::CHANNEL_DEFAULT
): bool

Изменяет значение цвета любого пикселя, соответствующего целевому и являющегося ближайшим соседом. Данный метод - замена устаревшему 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");
?>

Вывод приведённого примера будет похож на:

Вывод примера: Imagick::floodfillPaintImage()
Вывод примера: Imagick::floodfillPaintImage()