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);
(PECL imagick 2, PECL imagick 3)
Imagick::levelImage — Bir görüntünün seviyelerini ayarlar
$siyah_nokta
,$gamma
,$beyaz_nokta
,$kanal
= Imagick::CHANNEL_DEFAULT
Siyah ve beyaz noktalarla belirtilen kullanılabilir parçacık aralığının
tamamına karşı düşen renkleri oranlayarak bir görüntünün seviyelerini
ayarlar. Belirtilen bağımsız değişkenler siyah, gri ve beyaz noktaları belirtir.
siyah_nokta
görüntünün kabul edilebilir en koyu
rengini belirtir. Bu noktadan daha koyu renklere sıfır atanır.
gamma
ile görüntüye uygulanacak gamma düzeltmesi
belirtilir. beyaz_nokta
görüntünün kabul edilebilir en
açık rengini belirtir. Bu noktadan daha açık renklere azami parçacık değeri
atanır.
siyah_nokta
Görüntünün en koyu rengi.
gamma
Gamma düzeltmesi.
beyaz_nokta
Görüntünün en açık rengi.
kanal
Normalde kanal türü sabitlerinden biri, ancak bitsel işleçler kullanılarak birden fazla kanal belirtilebilir.
Başarı durumunda true
döner.
Hata durumunda bir ImagickException istisnası oluşur.
Örnek 1 - Imagick::levelImage() örneği
<?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();
}
?>
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);