Imagick::floodFillPaintImage

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

Imagick::floodFillPaintImageCambia el valor del color de cualquier píxel que coincida con el objetivo

Descripción

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

Cambia el valor del color de cualquier píxel que coincida con el objetivo y esté en el área inmediata. Este método es un sustituto del método obsoleto Imagick::paintFloodFillImage(). Este método solo está disponible si Imagick ha sido compilado con ImageMagick versión 6.3.8 o superior.

Parámetros

fill

Objeto ImagickPixel o una cadena que contiene el color de relleno

fuzz

La cantidad de polvo de papel. Por ejemplo, definir el polvo de papel a 10 y el color rojo a una intensidad de 100 y 102 no será interpretado como el mismo color.

target

Objeto ImagickPixel o una cadena que contiene el color objetivo a dibujar

x

Posición X del inicio del relleno

y

Posición Y del inicio del relleno

invert

Si es true se pinta cualquier píxel que no coincida con el color objetivo.

channel

Proporciona una constante de canal válida para su modo de canal. Para aplicarlo a más de un canal, combínense las constantes de canales utilizando un operador a nivel de bits. Por omisión, vale Imagick::CHANNEL_DEFAULT. Consúltese la lista de constantes de canales

Valores devueltos

Devuelve true en caso de éxito.

Ejemplos

Ejemplo #1 Ejemplo de Imagick::floodfillPaintImage()

<?php

/* Crear un nuevo objeto imagick */
$im = new Imagick();

/* Crear imágenes de color rojo, verde y azul */
$im->newImage(100, 50, "red");
$im->newImage(100, 50, "green");
$im->newImage(100, 50, "blue");

/* Añadir las imágenes para que sean una */
$im->resetIterator();
$combinado = $im->appendImages(true);

/* Guardar la imagen intermedia para la comparación */
$combinado->writeImage("floodfillpaint_intermedia.png");

/* El píxel objetivo a pintar */
$x = 1;
$y = 1;

/* Obtener el color con el que vamos a pintar */
$objetivo = $combinado->getImagePixelColor($x, $y);

/* Pinta el píxel en la posición 1,1 negro y todos los píxeles
cercanos que coincidan con el color objetivo */
$combinado->floodfillPaintImage("black", 1, $objetivo, $x, $y, false);

/* Guardar el resultado */
$combinado->writeImage("floodfillpaint_resultado.png");
?>

Resultado del ejemplo anterior es similar a :

Salida del ejemplo : Imagick::floodfillPaintImage()
Salida del ejemplo : Imagick::floodfillPaintImage()