PHP

Imagick floodFillPaintImage() Function: Syntax and Usage

Sintaxis básica

La función floodFillPaintImage() en Imagick se utiliza para rellenar una región de una imagen con un color específico. La sintaxis básica de la función es la siguiente:

$imagick->floodFillPaintImage($fillColor, $fuzz, $targetColor, $x, $y, $channel);

Donde:

  • $imagick: Es el objeto Imagick en el que se aplicará la función.
  • $fillColor: Es el color con el que se rellenará la región.
  • $fuzz: Es la tolerancia de color. Se utiliza para determinar qué píxeles se considerarán parte de la región a rellenar.
  • $targetColor: Es el color objetivo que se utilizará como punto de partida para el relleno.
  • $x: Es la coordenada x del punto de inicio del relleno.
  • $y: Es la coordenada y del punto de inicio del relleno.
  • $channel: Es el canal de color en el que se aplicará el relleno. Puede ser uno de los siguientes valores: Imagick::CHANNEL_DEFAULT, Imagick::CHANNEL_RED, Imagick::CHANNEL_GREEN, Imagick::CHANNEL_BLUE, Imagick::CHANNEL_ALPHA, Imagick::CHANNEL_BLACK o Imagick::CHANNEL_ALL.

Parámetros de la función

A continuación, se describen en detalle los parámetros de la función floodFillPaintImage():

  • $fillColor: Este parámetro especifica el color con el que se rellenará la región. Puede ser un objeto ImagickPixel que representa un color sólido, o una cadena que representa un color en formato CSS (por ejemplo, «red» o «#FF0000»).
  • $fuzz: Este parámetro especifica la tolerancia de color. Un valor más alto de fuzz permitirá que se incluyan píxeles con colores similares al color objetivo en la región a rellenar. Un valor de 0 significa que solo se incluirán píxeles con el color exacto del objetivo.
  • $targetColor: Este parámetro especifica el color objetivo que se utilizará como punto de partida para el relleno. Puede ser un objeto ImagickPixel o una cadena que representa un color en formato CSS.
  • $x: Este parámetro especifica la coordenada x del punto de inicio del relleno.
  • $y: Este parámetro especifica la coordenada y del punto de inicio del relleno.
  • $channel: Este parámetro especifica el canal de color en el que se aplicará el relleno. Puede ser uno de los siguientes valores: Imagick::CHANNEL_DEFAULT, Imagick::CHANNEL_RED, Imagick::CHANNEL_GREEN, Imagick::CHANNEL_BLUE, Imagick::CHANNEL_ALPHA, Imagick::CHANNEL_BLACK o Imagick::CHANNEL_ALL.
Recomendado:  PHP foreach loop: Sintaxis y ejemplos de bucle foreach en PHP

Valores de retorno

La función floodFillPaintImage() devuelve true en caso de éxito.

Ejemplo de uso

A continuación, se muestra un ejemplo de cómo utilizar la función floodFillPaintImage() en Imagick:

$imagick = new Imagick('input.jpg');

$fillColor = new ImagickPixel('red');
$fuzz = 10;
$targetColor = new ImagickPixel('white');
$x = 100;
$y = 100;
$channel = Imagick::CHANNEL_DEFAULT;

$imagick->floodFillPaintImage($fillColor, $fuzz, $targetColor, $x, $y, $channel);

$imagick->writeImage('output.jpg');

En este ejemplo, se carga una imagen de entrada llamada «input.jpg» y se crea un objeto Imagick para manipularla. Luego, se especifica el color de relleno como rojo, una tolerancia de color de 10, el color objetivo como blanco, las coordenadas de inicio del relleno como (100, 100) y el canal de color predeterminado. Finalmente, se aplica el relleno a la imagen y se guarda el resultado en un archivo llamado «output.jpg».

Consideraciones adicionales

Al utilizar la función floodFillPaintImage() en Imagick, es importante tener en cuenta lo siguiente:

  • La función modifica la imagen original, por lo que es recomendable hacer una copia de seguridad antes de aplicarla.
  • El relleno se realiza en función del color objetivo y la tolerancia de color especificada. Es posible que se incluyan píxeles con colores similares al objetivo en la región a rellenar.
  • El canal de color especificado determina en qué canal se aplicará el relleno. Por ejemplo, si se selecciona el canal rojo, solo se modificarán los valores de rojo de los píxeles en la región.

Author

osceda@hotmail.com

Leave a comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *