Инструмент mogrify в ImageMagick затемняет PNG (когда пытается изменить размер)

Я пытаюсь использовать простую команду для изменения размера изображений и перезаписи оригиналов:

mogrify -resize 80% *

Мои исходные изображения - полупрозрачные PNG, которые оказываются серыми. Операция изменения размера работает, но делает изображения темнее.

введите описание здесь

Раньше это работало на другой машине (Ubuntu 12.04, с ImageMagick 6.6.9-7 2014-03-06) и сломался на более новой машине (Ubuntu 14.04, с ImageMagick 6.7.7-10 2014-03-06). На момент публикации поврежденная версия является последней версией репозитория Ubuntu 14.04.

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

К вашему сведению - очевидно, что инструмент конвертации также затронут.

2 ответа

Добавление -type truecolorAlpha может решить эту проблему.

Можно найти объяснение, относящееся к типу PNG с истинным цветом исходного файла и разному размеру палитры до и после операции изменения размера.

По сути, это была ошибка из-за неправильного распознавания профиля iCCP из PNG (colortype 6), который был распознан как sRGB и может возникнуть в аналогичной ситуации.

Я нашел сообщение в блоге, показывающее обходной путь, указав формат вывода. Для меня я хотел полупрозрачные PNG, поэтому лучшим выбором было добавить -define png:format=png32 опция:

mogrify -define png:format=png32 -resize 80% *

(Блог предлагает -define png:format=png24 но это, кажется, ограничивает выходной альфа 1-битным.)

Другие вопросы по тегам