(PECL imagick 3 >= 3.3.0)
Imagick::colorMatrixImage — Aplica una transformación de color a una imagen
Aplica una transformación de color a una imagen. El método permite cambios de saturación, rotación de tono, luminancia en alfa y diversos otros efectos. Aunque se pueden utilizar matrices de transformación de tamaño variable, generalmente se usa una matriz 5x5 para una imagen RGBA y una 6x6 para CMYKA (o RGBA con desplazamientos). La matriz es similar a las utilizadas por Adobe Flash, excepto que los desplazamientos están en la columna 6 en lugar de la 5 (para soportar imágenes CMYKA) y los desplazamientos están normalizados (divida el desplazamiento Flash por 255).
color_matrix
Devuelve true
en caso de éxito.
Ejemplo #1 Imagick::colorMatrixImage()
<?php
function colorMatrixImage($imagePath, $colorMatrix) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageOpacity(1);
//Una matriz de color debería ser similar a:
// $colorMatrix = [
// 1.5, 0.0, 0.0, 0.0, 0.0, -0.157,
// 0.0, 1.0, 0.5, 0.0, 0.0, -0.157,
// 0.0, 0.0, 1.5, 0.0, 0.0, -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.0, 0.0, 1.0
// ];
$background = new \Imagick();
$background->newPseudoImage($imagick->getImageWidth(), $imagick->getImageHeight(), "pattern:checkerboard");
$background->setImageFormat('png');
$imagick->setImageFormat('png');
$imagick->colorMatrixImage($colorMatrix);
$background->compositeImage($imagick, \Imagick::COMPOSITE_ATOP, 0, 0);
header("Content-Type: image/png");
echo $background->getImageBlob();
}
?>