Imagemagick convert -fill не изменяет края из определенной области палитры

1

Когда я пытаюсь удалить Green (#09f80c) из этого изображения, используя команду ниже

magick convert images/img001.png - fill transparent -opaque #09f80c images/tp.png

Я становлюсь ниже изображения:

Изображение 174551

Это изображение я получаю как вывод для команды выше. У этого изображения все еще есть зеленые точки по краям. Как их полностью удалить?

Изображение 174551

Я хочу, чтобы преобразованное изображение не содержало лишних пикселей.

Ваша помощь будет высоко оценена.

Теги:
ffmpeg
imagemagick
imagemagick-convert

2 ответа

3

В Imagemagick вы можете использовать -fuzz, как предложил Энди. Но вы можете увеличить значение fuzz до тех пор, пока не начнете изменять другие регионы, а также зеленый.

Начните с измерения цвета как можно ближе. Я получаю # 2FF81D

Ниже приведено большое значение fuzz для этого изображения. Но у него все еще есть зеленый цвет снаружи. (Синтаксис Unix)

convert green.jpg -fuzz 35% -transparent "#2FF81D" green_trans1.png

Изображение 174551

Чтобы дополнительно уменьшить эффект, вы можете сгладить границу прозрачной области, слегка смазав ее и суживая (через -level).

convert green.jpg -fuzz 35% -transparent "#2FF81D" -channel a -blur 0x3 -level 50x100% +channel green_trans2.png

Изображение 174551

0

Может быть, вы должны попробовать -fuzz аргумент, например, -fuzz 40%.

Я нашел это в документации здесь:

http://www.imagemagick.org/Usage/color_basics/#replace

  • 0
    Спасибо за ответ. Не могли бы вы дать мне полную команду в случае моего сценария. Как я уже пробовал с -fuzz, но это дает мне другой неуместный результат

Ещё вопросы

Сообщество Overcoder
Наверх
Меню