Magick ++ — уменьшить битовую глубину изображения в оттенках серого

Я пытаюсь уменьшить глубину канала PNG с 8 до 4, используя Magick ++. Я использую следующий код для этого:

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

Для цветных изображений это прекрасно работает. Но для изображений в градациях серого ImageMagick делает что-то странное. Он сжимает весь контент в левую половину изображения и отображает случайные пиксели в правой половине.

Например этот павиан здесь:
введите описание изображения здесь

превращается в это с кодом выше:введите описание изображения здесь

У кого-нибудь есть объяснение этому поведению и / или идея, как мне это решить?

Или это может быть даже ошибка изображения магии?

0

Решение

Похоже, ошибка в вашей версии ImageMagick. В текущей версии (6.9.2-8) ошибка не отображается при запуске из командной строки:

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]