Imagick::colorMatrixImage

Description

Description

public void Imagick::colorMatrixImage ( string $color_matrix = Imagick::CHANNEL_DEFAULT )

Apply color transformation to an image. The method permits saturation changes, hue rotation, luminance to alpha, and various other effects. Although variable-sized transformation matrices can be used, typically one uses a 5x5 matrix for an RGBA image and a 6x6 for CMYKA (or RGBA with offsets). The matrix is similar to those used by Adobe Flash except offsets are in column 6 rather than 5 (in support of CMYKA images) and offsets are normalized (divide Flash offset by 255)

Parameters

color_matrix

Return Values

Examples

Example #1 Imagick::colorMatrixImage

<?php
function colorMatrixImage($imagePath$colorMatrix) {
    
$imagick = new \Imagick(realpath($imagePath));
    
$imagick->setImageOpacity(1);

    
//A color matrix should look like:
    //    $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_ATOP00);

    
header("Content-Type: image/png");
    echo 
$background->getImageBlob();
}

?>