(PECL imagick 3 >= 3.3.0)
Imagick::colorMatrixImage — Applique une transformation de couleur à une image
Applique une transformation de couleur à une image. La méthode permet des changements de saturation, une rotation de teinte, une luminance en alpha, et divers autres effets. Bien que des matrices de transformation de taille variable puissent être utilisées, on utilise généralement une matrice 5x5 pour une image RGBA et une 6x6 pour CMYKA (ou RGBA avec des décalages). La matrice est similaire à celles utilisées par Adobe Flash, sauf que les décalages sont dans la colonne 6 plutôt que 5 (en support des images CMYKA) et les décalages sont normalisés (divisez le décalage Flash par 255).
color_matrix
Retourne true
en cas de succès.
Exemple #1 Imagick::colorMatrixImage()
<?php
function colorMatrixImage($imagePath, $colorMatrix) {
$imagick = new \Imagick(realpath($imagePath));
$imagick->setImageOpacity(1);
//Une matrice de couleur devrait ressembler à:
// $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();
}
?>