PHP Conference Japan 2024

Imagick::getImageChannelStatistics

(PECL imagick 2, PECL imagick 3)

Imagick::getImageChannelStatistics返回图像中每个通道的统计信息

描述

public Imagick::getImageChannelStatistics(): array

返回图像中每个通道的统计信息。统计信息包括通道深度、最小值和最大值、平均值和标准差。

参数

此函数没有参数。

返回值

成功时返回 true

添加注释

用户贡献注释 1 条注释

0
holdoffhunger at gmail dot com
12 年前
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

// 作者:[email protected]

// 创建 Imagick 对象
// ---------------------------------------------

$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);

?>
To Top