Инструмент mogrify в ImageMagick затемняет PNG (когда пытается изменить размер)
764
Jeff Ward
Я пытаюсь использовать простую команду для изменения размера изображений и перезаписи оригиналов:
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 - инструмент с возможностью написания сценариев, это неудачная регрессия, которая должна была быть обнаружена модульным тестом. Я ухожу, чтобы проверить мои рабочие процессы со сценариями.
К вашему сведению - очевидно, что инструмент конвертации также затронут.
Попробуйте добавить `-type truecolorAlpha` ([проверьте здесь] (http://www.imagemagick.org/discourse-server/viewtopic.php?t=21436))
Hastur 9 лет назад
2
Да, опция `-type truecolorAlpha` также позволяет обойти ошибку.
Jeff Ward 9 лет назад
0
2 ответа на вопрос
1
Hastur
Добавление -type truecolorAlphaможет решить эту проблему.
Можно найти объяснение, относящееся к типу PNG с истинным цветом исходного файла и разному размеру палитры до и после операции изменения размера.
По сути, это была ошибка из-за неправильного распознавания профиля iCCP из PNG (colortype 6), который был распознан как sRGB и может возникнуть в аналогичной ситуации.
0
Jeff Ward
Я нашел сообщение в блоге, показывающее обходной путь, указав формат вывода. Для меня я хотел полупрозрачные PNG, поэтому лучшим выбором было добавить -define png:format=png32опцию:
mogrify -define png:format=png32 -resize 80% *
(Блог предлагает, -define png:format=png24но это, кажется, ограничивает выходной альфа до 1-бит.)