ImageMagick 函数 'getImageChannelStatistics' 返回一个数组的数组。第一个数组的键值为 0、1、2、4、8 和 32。这些数组依次包含五个值:平均值、最小值、最大值、标准差和深度。print_r 的示例输出如下所示……
数组
(
[0] => 数组
(
[平均值] => 0
[最小值] => 1.0E+37
[最大值] => -1.0E-37
[标准差] => 0
[深度] => 1
)
[1] => 数组
(
[平均值] => 13215.2836185
[最小值] => 0
[最大值] => 65535
[标准差] => 19099.2202751
[深度] => 8
)
[等等……]
}
键值 0、1、2 等分别代表什么含义?这些是 ImageMagick 通道常量的共享、计算值。您拥有类似 imagick::CHANNEL_UNDEFINED 的通道常量值,其 “_VALUE” 值为:未定义、红色、灰色、青色、绿色、品红色、蓝色、黄色、alpha、不透明度、蒙版、黑色、索引、全部和默认。如果您实际打印出这些常量,则会得到:未定义为 '0',红色、灰色和青色为 '1',绿色和品红色为 '2',蓝色和黄色为 '4',alpha、不透明度和蒙版为 '8',或黑色和索引为 '32'。为什么多个通道共享相同的计算整数值?这是因为它们是来自不同颜色空间的颜色,其中红色/绿色/蓝色是 RGB 光谱,青色/品红色/黄色/黑色是 CMYK 光谱,等等。如果您想获取青色或红色的统计结果值,您将访问相同的通道键。
每个颜色通道产生五个值。键 '平均值' 和 '标准差' 的元素值是 getImageChannelMean 函数的结果。键 '最小值' 和 '最大值' 的元素值是 getChannelRange 函数的结果。键 '深度' 的元素值是 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);
?>