ImageMagick 函式 'getImageChannelStatistics' 會傳回一個陣列的陣列。第一個陣列的鍵值設定為 0、1、2、4、8 和 32。這些陣列中的每一個陣列,又各有五個值,分別是平均值、最小值、最大值、標準差和深度。陣列的範例 print_r 輸出如下...
陣列
(
[0] => 陣列
(
[mean] => 0
[minima] => 1.0E+37
[maxima] => -1.0E-37
[standardDeviation] => 0
[depth] => 1
)
[1] => 陣列
(
[mean] => 13215.2836185
[minima] => 0
[maxima] => 65535
[standardDeviation] => 19099.2202751
[depth] => 8
)
[等等,等等..]
}
每個 0、1、2 等值的鍵值代表什麼意思?這些是 ImageMagick 通道常數的共享、評估值。您有看起來像 imagick::CHANNEL_UNDEFINED 的通道常數值,其 "_VALUE" 值為:未定義、紅色、灰色、青色、綠色、洋紅色、藍色、黃色、alpha、不透明度、遮罩、黑色、索引、全部和預設。如果您實際印出這些常數,未定義會得到 '0',紅色、灰色和青色會得到 '1',綠色和洋紅色會得到 '2',藍色和黃色會得到 '4',而 alpha、不透明度和遮罩會得到 '8',黑色和索引則會得到 '32'。為什麼多個通道共用相同的評估整數值?那是因為它們是來自不同色彩空間的顏色,其中紅/綠/藍是 RGB 光譜,青/洋紅/黃/黑是 CMYK 光譜等等。如果您想取得青色或紅色的統計結果值,您將會存取相同的通道鍵值。
每個顏色通道會產生五個值。鍵值 'mean' 和 'standardDeviation' 的元素值是來自 getImageChannelMean 函式的結果。鍵值 'minima' 和 'maxima' 的元素值是來自 getChannelRange 函式的結果。而鍵值 'depth' 的元素值是來自 getImageChannelDepth 函式的結果。所有這些值在測量特定影像的通道值方面都很有用。
現在,提供一些範例程式碼
<?php
$imagick_type = new Imagick();
$file_to_grab_with_location = "image_workshop_directory/test.bmp";
$file_handle_for_viewing_image_file = fopen($file_to_grab_with_location, 'a+');
$imagick_type->readImageFile($file_handle_for_viewing_image_file);
$imagick_type_channel_statistics = $imagick_type->getImageChannelStatistics();
print_r($imagick_type_channel_statistics);
?>