當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。