0

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

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

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

例如这里的狒狒: 在此处输入图像描述

用上面的代码变成了这个:在此处输入图像描述

有人对这种行为有解释和/或知道如何解决这个问题吗?

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

4

1 回答 1

2

看起来像您的 ImageMagick 版本中的错误。当前版本(6.9.2-8)从命令行运行时没有出现该错误:“convert 5koQD.png -depth 4 depth4.png”

于 2015-12-09T17:41:52.533 回答