PHP Conference Japan 2024

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

提供對你的通道模式有效的任何通道常數。要套用到多個通道,請使用位元運算子組合通道類型常數。請參閱此通道常數列表。

回傳值

成功時回傳 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