(No hay información de versión disponible, podría estar únicamente en SVN)
Imagick::floodFillPaintImage — Cambia el valor del color de cualquier píxel que coincida con el objetivo
$fill
, float $fuzz
, mixed $target
, int $x
, int $y
, bool $invert
[, int $channel
= Imagick::CHANNEL_DEFAULT
] )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 está disponible si Imagick ha sido compilado con la versión 6.3.8 (o superior) de ImageMagick.
fill
Objeto ImagickPixel o una cadena que contiene el color de relleno
fuzz
La cantidad de difusión. Por ejemplo, setee fuzz a 10 y el color rojo a intensidades de 100 y 102 respectivamente son ahora interpretados 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 cualquier contante de canal que sea válida para su modo de canal. Para aplicarlo a más de un canal, combine constantes de canal using bitwise operadores bit a bit. El valor por defecto para Imagick::CHANNEL_DEFAULT
. Referirse a esta lista de constantes de canal
Devuelve TRUE
en caso de éxito.
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");
?>
El resultado del ejemplo sería algo similar a: