【发布时间】:2016-03-12 08:59:56
【问题描述】:
我正在尝试使用 Magick++ 将 PNG 的通道位深度从 8 减少到 4。我正在使用以下代码来执行此操作:
Image * img = new Image("./image8.png");
img->channelDepth(ChannelType::AllChannels,4);
img->write("./image4.png");
对于彩色图像,这很有效。但是对于灰度图像,ImageMagick 做了一些奇怪的事情。它将整个内容压缩到图像的左半部分,并在右半部分显示随机像素。
是否有人对此行为有解释和/或知道如何解决此问题?
或者这甚至可能是图像魔术的错误?
【问题讨论】:
-
看起来像一个错误。您使用的是什么版本的 ImageMagick?当前版本(6.9.2-8)从命令行运行时没有出现该错误:“convert 5koQD.png -depth 4 depth4.png”
-
我也无法使用
Magick++ 6.9.2 Q16复制 -
哦,我的版本有几个月了,所以我要试试最新的版本。如果它只是一个错误并且已经修复,那就太好了:)
-
你们是对的人! ImageMagick 的最新版本不再有这个错误。谢谢 :) 我不知道我现在应该删除这个问题还是让你发布一个答案......你怎么看?
标签: c++ imagemagick png magick++ bit-depth