#imagemagick
Вопрос:
У меня есть большой набор изображений. По умолчанию используется белый цвет, который следует изменить на определенный шестнадцатеричный код, оставив в покое любой черный цвет, присутствующий на изображении (поскольку он обозначает символ). Белый цвет обычно частично прозрачен, и его следует сохранить, если это так. Любые полностью прозрачные области должны быть прозрачными.
Я выполняю пакетную обработку с помощью Powershell- $ColorHex
относится к шестнадцатеричному значению в массиве. Сгенерированный файл должен соответствовать полученному цвету.
Зеленый (#009900) — раскрасить 70%
magick ".FFFFFF.png" -fuzz 5% -fill "#$ColorHex" -opaque "#FFFFFF" -colorize 70% "$ColorHex.png"
Зеленый (#009900) — пух 75% -непрозрачный
magick convert ".FFFFFF.png" -fuzz 75% -fill "#$ColorHex" -opaque "#FFFFFF" "$ColorHex.png"
Как правило, это то, что я хочу, но не сохраняет частичную прозрачность белого при преобразовании в зеленый И неровен по черным краям (предпочел бы, чтобы он был сглажен).
У меня есть тонна изображений, которые я хочу обработать таким образом, и я очень признателен за любую помощь.
Комментарии:
1. Если вы хотите изменить только чистый (непрозрачный) белый цвет, не включайте-fuzz. Если вы хотите изменить частично прозрачный белый цвет, то каково ваше значение ColorHex? Вы включили прозрачность? Для Imagemagick 7 используйте магию, а не преобразование магии.
Ответ №1:
Возможно, это то, что вам нужно в Imagemagick 7. Здесь я делаю копию изображения в памяти. Затем я выключаю alpha и обрабатываю все чисто белым. Затем я извлекаю альфа-канал из копии в памяти и помещаю его обратно на полученное зеленое изображение.
Ввод:
Синтаксис Unix:
magick nCijg.png write mpr:img
-alpha off -fill "#009900" -opaque "#FFFFFF"
( mpr:img -alpha extract )
-alpha off -compose copy_opacity -composite
result.png
Синтаксис Windows:
magick nCijg.png write mpr:img ^
-alpha off -fill "#009900" -opaque "#FFFFFF" ^
( mpr:img -alpha extract ) ^
-alpha off -compose copy_opacity -composite ^
result.png
Результат:
Вы можете добавить немного пуха, если хотите добавить небелый цвет, чтобы заполнить некоторые небольшие отверстия в белом.
Комментарии:
1. Именно то, что мне было нужно. Я увеличил размытость и для значков без границ смог раскрасить их (используя -раскрасить 100%). Огромное спасибо.