3

我正在尝试通过使用以下代码更改色彩空间来将图像转换为黑白:

$im = new Imagick('image.png');
$im->setImageColorspace(Imagick::COLORSPACE_GRAY);
$im->writeImage('out.png');

但是,在此代码之后,图像没有可见的变化(out.png 和 image.png 看起来无法区分)。关于为什么会这样的任何想法?这是将图像转换为黑白的正确方法吗?还有其他方法吗?

我也试过 setColorspace(Imagick::COLORSPACE_GRAY); 结果相同。

这是我正在使用的软件:

ImageMagick 6.6.9-7
PHP 5.3.10-1ubuntu3.1
Server version: Apache/2.2.22 (Ubuntu)

编辑:一些额外的信息

我也尝试过转换为其他色彩空间(特别是 CMY 和 CMYK),并没有注意到视觉上的差异。

4

2 回答 2

3

作为替代方案,您可以尝试$im->modulateImage(100,0,100);代替setImageColorspace()

希望这可以帮助!

于 2012-05-24T15:29:19.437 回答
2

正确使用的函数是 Imagick::transformImageColorspace 。嗯,显然它目前没有记录。

在这里,它被用于转换图像,然后分析该图像的单个通道http://www.phpimagick.com/Imagick/transformImageColorspace

于 2015-02-13T20:03:49.000 回答