我這個方法有問題,因為我認為量子範圍是 0 - 255。
但是 levelImage 的量子範圍是 0-65535。您可以使用 Imagick::getQuantumRange 來取得量子範圍
這是一段正確的程式碼
$img->levelImage (0, 1.0, 65535);
(PECL imagick 2, PECL imagick 3)
Imagick::levelImage — 調整影像的色階
$blackPoint
,$gamma
,$whitePoint
,$channel
= Imagick::CHANNEL_DEFAULT透過將指定黑點和白點之間的顏色縮放到可用的全部量子範圍,來調整影像的色階。提供的參數代表黑點、中點和白點。黑點指定影像中最暗的顏色。比黑點暗的顏色會設為零。中點指定要套用到影像的伽瑪校正。白點指定影像中最亮的顏色。比白點亮的顏色會設為最大量子值。
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();
}
?>
我這個方法有問題,因為我認為量子範圍是 0 - 255。
但是 levelImage 的量子範圍是 0-65535。您可以使用 Imagick::getQuantumRange 來取得量子範圍
這是一段正確的程式碼
$img->levelImage (0, 1.0, 65535);