Конвертер imagemagick неожиданно меняет цвет фона

я пытаюсь добиться простой графики с веб-сервера и использовать imagemagick, чтобы изменить несколько цветов, чтобы затем я мог использовать этот образ.

Это часть изображения:

  • Настройка Apache 2.4 для разрешения CGI на Debian Jessie
  • Почему mono-complete полностью устарел во всех версиях Debian?
  • Как загрузить пакет и его зависимости с aptitude?
  • Intel Wireless 1000 bgn не работает в debian / ubuntu
  • Почему видео разрывает такую ​​проблему в Linux?
  • Как найти пакеты Debian, которые освободят пространство
  • convert traffic.png -transparent "rgb(240,240,240)" traffic2.png convert traffic2.png -fill "rgb(200,200,200)" -opaque black traffic2.png convert traffic2.png -fill "rgb(200,200,200)" -opaque "rgb(0,200,0)" traffic2.png convert traffic2.png -fill "rgb(200,200,200)" -opaque "rgb(0,130,0)" traffic2.png convert traffic2.png -fill "rgb(200,200,200)" -opaque "rgb(150,150,255)" traffic2.png # convert traffic2.png -fill "rgb(200,200,200)" -opaque "rgb(0,0,255)" traffic2.png 

    Проблема, с которой я столкнулась, – это строка, которая в настоящее время закомментирована. То, что должно было бы сделать, по моему мнению, изменить все вхождения этого синего на тот же серый, что и указано, но это также делает, но как только эта строка будет выполнена, ранее прозрачный фон превращается в сплошной цвет. Видя, как синтаксис одинаковый, я действительно не знаю, почему это происходит. Он отлично работает, когда я пытаюсь выполнить эти команды на своей локальной машине (OS X), но под Debian на моем малине Pi что-то похоже мешает.

  • Системные сообщения float виртуальная консоль
  • разрешения безопасности debian / etc
  • Как добавить настраиваемый пакет в репозиторий debian?
  • Разрешение запрещено в скриптовой тюрьме chroot
  • Установить имя хоста при первой загрузке перед сетевым сервисом
  • Определение состояния пароля для пользователя
  • One Solution collect form web for “Конвертер imagemagick неожиданно меняет цвет фона”

    Я думаю, что ваша проблема, как мы обсуждали в комментариях по вашему вопросу, в частности, изменение, которое было сделано между IM 6.6.X и 6.7+. Ваши команды работали для меня на Fedora 14 и CentOS 5 и 6, но не на Ubuntu 12.10.

    • F14 (6.6.4-1 2011-11-03 Q16) – работал
    • CentOS 6 (6.5.4-7 2012-05-07 Q16) – работал
    • Ubuntu 12.10 (6.7.7-10 2012-08-17 Q16) не работал

    Я нашел этот бит в документации IM, озаглавленный: Примеры ImageMagick v6 – Основы цвета и каналы . Этот бросок – это то, что привлекло мое внимание в разделе: «Замена цветов в изображениях»:

    Однако с IM v6.2.7 этот оператор ограничен настройкой «-канала». Таким образом, чтобы преобразовать цвет (например, синий) в прозрачность, вам нужно указать «канал», чтобы включить альфа-канал, чтобы сделать прозрачные цвета. Вам также необходимо убедиться, что изображение имеет «матовый» или альфа-канал, чтобы сохранить информацию о прозрачности.

    С помощью этой новой информации я преобразовал вашу 6-ю команду в это:

     $ convert traffic2.png -transparent "rgb(0,0,255)" traffic2.png 

    И, похоже, он сработал. ОП подтвердил, что это решило его проблему!

    старая команда

    ss of bad traffic2.png

    новая команда

    ss of good traffic2.png

    Linux и Unix - лучшая ОС в мире.