Imagick::levelImage

(PECL imagick 2, PECL imagick 3)

Imagick::levelImage调整图像的级别

描述

public Imagick::levelImage(
    float $blackPoint,
    float $gamma,
    float $whitePoint,
    int $channel = Imagick::CHANNEL_DEFAULT
): bool

通过将落在指定白点和黑点之间的颜色缩放至全部可用的量子范围,来调整图像的级别。提供的参数表示黑点、中点和白点。黑点指定图像中最暗的颜色。比黑点更暗的颜色将设置为零。中点指定要应用于图像的伽马校正。白点指定图像中最亮的颜色。比白点更亮的颜色将设置为最大量子值。

参数

blackPoint

图像黑点

gamma

伽马值

whitePoint

图像白点

channel

提供对您的通道模式有效的任何通道常量。要应用于多个通道,请使用按位运算符组合 channeltype 常量。参考此列表中的 通道常量.

返回值

成功时返回 true

错误/异常

发生错误时抛出 ImagickException。

示例

示例 #1 Imagick::levelImage()

<?php
function levelImage($blackPoint, $gamma, $whitePoint) {
$imagick = new \Imagick();
$imagick->newPseudoimage(500, 500, 'gradient:black-white');

$imagick->setFormat('png');
$quantum = $imagick->getQuantum();
$imagick->levelImage($blackPoint / 100 , $gamma, $quantum * $whitePoint / 100);

header("Content-Type: image/png");
echo
$imagick->getImageBlob();
}

?>

添加备注

用户贡献的备注 1 备注

7
Maxim Lovchikov
13 年前
我对这个方法有点问题,因为它认为量子范围是 0 - 255。
但 levelImage 的量子范围是 0-65535。你可以使用 Imagick::getQuantumRange 获取量子范围
这里有一段正确的代码

$img->levelImage (0, 1.0, 65535);
To Top