Magick ++ - 减少灰度图像的位深度

时间:2015-12-07 16:55:49

标签: c++ imagemagick png magick++ bit-depth

我尝试使用Magick ++将PNG的通道位深度从8减少到4。我使用以下代码执行此操作:

Image * img = new Image("./image8.png");
img->channelDepth(ChannelType::AllChannels,4);
img->write("./image4.png");

对于彩色图像,这很有效。但对于灰度图像,ImageMagick做了一些奇怪的事情。它将整个内容压缩到图像的左半部分,并在右半部分显示随机像素。

例如这个狒狒: enter image description here

使用上面的代码变成了这个:enter image description here

是否有人对此行为有解释和/或我如何解决这个问题?

或者这甚至可能是图像魔法的错误?

1 个答案:

答案 0 :(得分:2)

看起来像你的ImageMagick版本中的错误。当前版本(6.9.2-8)在从命令行运行时不会出现错误:"转换为5koQD.png -depth 4 depth4.png"