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

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

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

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 что-то похоже мешает.

  • Как разбить изображение по вертикали с помощью строки comand?
  • Почему команда ImageMagick `compare` настолько медленная и есть альтернатива?
  • Как сделать снимок экрана моего буфера Xvfb?
  • Создание слайд-шоу под Linux
  • Как сгенерировать много (пустых) файлов изображений?
  • Не удается «сделать» более старую версию ImageMagick
  • Imagemagick конвертирует неправильно размеры ландшафта pdfs
  • Imagemagick на открытом wrt-маршрутизаторе «UnableToOpenConfigureFile»
  • 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

    Interesting Posts

    Сценарий оболочки проверяет, существует ли файл?

    Как добавить хэш файла в файл

    почему dhcpd прослушивает порт udp 38053 и udp6 порт 40572?

    Невозможно получить работу NAT через цепочку iptables PREROUTING

    Есть ли какая-либо команда, которая ограничивает использование ресурсов процессора в процентах?

    Как определить отображение LVM на физическом устройстве?

    Kali на RPI, не может обновить Kernel и установить текущие заголовки или найти старые заголовки для сборки

    aes-x86_64.ko Нет такого файла или каталога для сбоя установки модуля после 4.12.9 Компиляция ядра

    Перетаскивание вкладок между браузерами

    Как отключить диалоговое окно пароля обновления программного обеспечения PackageKit?

    grep –include действует как –exclude

    Автоматическое и надежное резервное копирование данных

    tcsh vs zsh. Символы Escape / Control

    Zsh завершает составление рецептов

    Что такое современный эквивалент чтения `/ dev / audio`?

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