Open In App

PHP | Imagick colorMatrixImage() Function

Last Updated : 08 May, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report
The Imagick::colorMatrixImage() function is an inbuilt function in PHP which is used to apply color transformation to the images. This function induces saturation changes, hue rotation, luminance to alpha, and various other effects. This function uses variable-size transformation matrices i.e. 5x5 matrix for RGBA and 6x6 matrix for CMYKA. Syntax:
bool Imagick::colorMatrixImage( array $color_matrix = Imagick::CHANNEL_DEFAULT )
Parameters: This function accepts single parameter $color_matrix which is used to hold a 5x5 matrix for RGBA with the rows meaning red, green, blue, alpha output, and the columns being red, green, blue, alpha input, whereas last row and columns for brightness adjustment. In 6x6 matrix for CMYKA with the rows meaning Cyan, Magenta, Yellow, Key or black, alpha output, and the columns being Cyan, Magenta, Yellow, Key or black, alpha input, whereas alpha for brightness adjustment similarly in RGBA, CMYKA also have last row and columns for brightness adjustment. Return Value: This function returns True on success and return False on failure. Below program illustrates the Imagick::colorMatrixImage() function in PHP: Program: php
 
<?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://media.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();
 
?>
Output: Reference: https://www.php.net/manual/en/imagick.colormatriximage.php

Next Article

Similar Reads