PHP | Función Imagick colorMatrixImage()

La función Imagick::colorMatrixImage() es una función incorporada en PHP que se utiliza para aplicar la transformación de color a las imágenes. Esta función induce cambios de saturación, rotación de tono, luminancia a alfa y varios otros efectos. Esta función utiliza arrays de transformación de tamaño variable, es decir , una array de 5×5 para RGBA y una array de 6×6 para CMYKA .

Sintaxis:

bool Imagick::colorMatrixImage( array $color_matrix = Imagick::CHANNEL_DEFAULT )

Parámetros: esta función acepta el parámetro único $color_matrix que se usa para contener una array de 5 × 5 para RGBA con las filas que significan rojo, verde, azul, salida alfa, y las columnas son rojo, verde, azul, entrada alfa, mientras que la última fila y columnas para ajuste de brillo. En array de 6 × 6 para CMYKA con filas que significan cian, magenta, amarillo, clave o negro, salida alfa, y columnas que son cian, magenta, amarillo, clave o negro, entrada alfa, mientras que alfa para ajuste de brillo similar en RGBA, CMYKA también tiene la última fila y columnas para el ajuste de brillo.

Valor de retorno: esta función devuelve verdadero en caso de éxito y devuelve falso en caso de error.

El siguiente programa ilustra la función Imagick::colorMatrixImage() en PHP:

Programa:

   
<?php
   
// 6x6 color matrix for CMYKA
$colorMatrix = [
    1.5, 0.0, 0.0, 0.0, 0.0, -0.157,
    0.0, 0.0, 0.5, 0.0, 0.0, -0.157,
    0.0, 0.0, 0.0, 0.0, 0.5, -0.157,
    0.0, 0.0, 0.0, 1.0, 0.0,  0.0,
    0.0, 0.0, 0.0, 0.0, 1.0,  0.0,
    0.0, 0.0, 0.0, 0.5, 0.0,  1.0
];
  
// Create Imagick object 
$imagick = new \Imagick(
'https://cdncontribute.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png');
     
// Set image opacity
$imagick->evaluateImage(
    Imagick::EVALUATE_MULTIPLY, 
    0.6, 
    Imagick::CHANNEL_ALPHA
);
   
// Create new Imagick object
$background = new \Imagick();
  
// Creating new pseudo image with hexagon pattern
$background->newPseudoImage(
    $imagick->getImageWidth(), 
    $imagick->getImageHeight(),  
    "pattern:hexagons"
);
   
// Set the image format
$background->setImageFormat('png');
$imagick->setImageFormat('png');
  
// Use Imagick::colorMatrixImage() function
$imagick->colorMatrixImage($colorMatrix);
  
// Use Imagick::compositeImage() function     
$background->compositeImage(
    $imagick, 
    \Imagick::COMPOSITE_SRCATOP,
    0,
    0
);
  
header("Content-Type: image/png");
  
// Display the output image
echo $background->getImageBlob();
   
?>

Producción:

Referencia: https://www.php.net/manual/en/imagick.colormatriximage.php

Publicación traducida automáticamente

Artículo escrito por VigneshKannan3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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