当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


PHP Imagick colorMatrixImage()用法及代码示例


Imagick::colorMatrixImage()函数是PHP中的内置函数,用于对图像进行颜色转换。此函数引起饱和度变化,色相旋转,亮度达到alpha以及其他各种效果。此函数使用variable-size转换矩阵,即RGBA为5×5矩阵,而CMYKA为6×6矩阵。

用法:

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

参数:此函数接受单个参数$color_matrix,该参数用于保存RGBA的5×5矩阵,其中行表示红色,绿色,蓝色,alpha输出,列为红色,绿色,蓝色,alpha输入,而最后一行和最后一列用于亮度调节。在CMYKA的6×6矩阵中,行表示青色,品红色,黄色,关键或黑色的alpha输出,列为青色,品红色,黄色,关键或黑色的alpha输入,而用于亮度调整的alpha在RGBA中类似, CMYKA还具有用于调整亮度的最后一行和最后一列。


返回值:此函数成功时返回True,失败时返回False。

以下示例程序旨在说明PHP中的Imagick::colorMatrixImage()函数:

程序:

   
<?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(); 
   
?>

输出:

参考: https://www.php.net/manual/en/imagick.colormatriximage.php



相关用法


注:本文由纯净天空筛选整理自VigneshKannan3大神的英文原创作品 PHP | Imagick colorMatrixImage() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。