Я хочу изменить белый фон на # 3D94DB (шестнадцатеричное представление триплета) и изменить черные линии на белые.
Как вы, возможно, уже заметили, на вашем примере значка присутствуют тонкие градации (от черного до белого) «черных» линий (вероятно, из-за сглаживания). Они должны оставаться неизменными, чтобы сохранить внешний вид значка:
В соответствии с руководством по использованию Imagemagick « Регулировка уровня по цвету», + level-color поможет как изменить «черный», так и «белый» цвета, а также (приблизительно) дать правильные градации цвета:
convert input.png +level-colors white,"#3D94DB" target.png
С вашим примером значка эта команда дает следующие результаты:
Предостережения:
В приведенной выше команде порядок замены цвета черный, а затем белый.
Между заменяющими цветами не должно быть пробелов, иначе это приведет к сбою команды.
Учитывая желаемый эффект, команда работает только для черно-белых изображений. Изображения с другими цветами будут давать неожиданные результаты. Аналогично, двухцветные изображения работают лучше, если вы преобразуете цветное изображение в оттенки серого.