Imagemagick去饱和黑/白?

时间:2011-02-07 15:10:06

标签: php imagemagick

想把它变成黑白色..无法弄清楚想象中的用途......

$handle_data = file_get_contents('http://www.bungie.net/Stats/Reach/Nightmap.ashx');
//http://www.bungie.net/Stats/Halo3/Nightmap.ashx
$img = new Imagick();
$img->readImageBlob($handle_data);
$img->writeImage('nightmap/'.$time.'.gif');

2 个答案:

答案 0 :(得分:3)

使用Imagick::modulateImage可能是一个快速而又肮脏的解决方案。很脏,因为色彩理论是一个相当复杂的领域,并且可以做更多的事情来创建灰度图像,而不仅仅是对图像进行去饱和处理(比如对单个颜色通道应用不同的权重)。

bool Imagick::modulateImage (float $brightness , float $saturation , float $hue)

根据图片,将brightnesshue保持为100%,同时将saturation设置为0%。文档页面底部有一个例子可以解决这个问题。

答案 1 :(得分:1)

有一个更好(也很简单)的解决方案:$im = $im->fxImage('intensity');

将一个函数应用于图像,其中强度等于0.299*red+0.587*green+0.114*blue

这个公式是基于我们的眼睛对不同颜色的敏感程度,以及它与平面之间的区别。灰度图像确实是白天和黑夜。

此处有更多详情: