ScotlandPHP

Imagick::levelImage

(PECL imagick 2.0.0)

Imagick::levelImage画像のレベルを調節する

説明

bool Imagick::levelImage ( float $blackPoint , float $gamma , float $whitePoint [, int $channel = Imagick::CHANNEL_ALL ] )

画像のレベルを調整します。 指定した白と黒の範囲にある色を、利用可能な色の範囲全体に拡大します。 黒の点、中間点、白の点をパラメータで指定します。 黒の点は、画像の中で一番暗い色を表します。 これより暗い色の点はゼロに設定されます。 中間点は、画像に適用するガンマ補正を指定します。 黒の点は、画像の中で一番明るい色を表します。 これより明るい色の点は最大値に設定されます。

パラメータ

blackPoint

画像の黒の点。

gamma

ガンマ値。

whitePoint

画像の白の点。

channel

チャネルモードに対応したチャネル定数を指定します。 複数のチャネルに適用するには、 ビット演算子でチャネル型定数を組み合わせます。 チャネル定数 の一覧を参照ください。

返り値

成功した場合に TRUE を返します。

エラー / 例外

エラー時に ImagickException をスローします。

例1 Imagick::levelImage()

<?php
function levelImage($blackPoint$gamma$whitePoint) {
    
$imagick = new \Imagick();
    
$imagick->newPseudoimage(500500'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();
}

?>

add a note add a note

User Contributed Notes 1 note

up
2
Maxim Lovchikov
6 years ago
I have a trouble with this method because think that quantum range is 0 - 255.
But quantum range for levelImage is 0-65535. You can get quantum range with Imagick::getQuantumRange
There is a right piece of code

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