我正在尝试使用PHP(版本:5.2.13)和ImageMagick(版本:6.7.8-7-Q16)对位图RGB图像进行程序转换为1位灰度(b / w)位图图像。输入图像是位图,并通过ImageMagick函数生成:
问题在于生成的图像仍处于RGB颜色空间中。
我还尝试过:
bool Imagick::setFormat ( string $format )
其中 $format = 'bmp2'
以下代码在过去的版本(ImageMagick 的旧版本......记不清是哪个版本)中曾经有效,但在当前环境中不再有效:
private function monochrome() {
if (isset($this->image)) {
try {
// reduce image colors to 2 (black and white)
$this->image->quantizeImage(2, Imagick::COLORSPACE_GRAY, 5, false, true);
// reduce image depth to 1 bit per pixel
$this->image->setImageDepth(1);
$this->image->setImageChannelDepth(Imagick::CHANNEL_ALL, 1);
// set image type to monochrome (2 colors: black and white only)
$this->image->setImageType(Imagick::IMGTYPE_BILEVEL);
}
catch (ImagickException $ie) {
throw $ie;
}
}
else {
throw new Exception("No image object");
}
}
问题在于生成的图像仍处于RGB颜色空间中。
我还尝试过:
$this->image->setImageColorSpace(Imagick::COLORSPACE_GRAY);
但结果并没有改变。
我的目标是为签名捕捉应用程序生成最小可能的黑白位图图像。我知道比位图更好的图像格式,但生成的图像必须与旧版Access 97兼容。这就是为什么选择“bmp2”作为图像格式的原因。
有什么想法吗?谢谢!