2

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

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 ответа2

1

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

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

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

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .