Как сделать изображения голубыми с помощью волшебства изображения? - PullRequest
0 голосов
/ 15 октября 2018

Так же, как этот вопрос 3 , я пытаюсь добиться постепенного исчезновения, но до постоянного цвета, а не постепенного перехода к прозрачному, как может исчезать на всех краях переход к синему, а не к прозрачному?Я пробовал следующее:

convert doge.png -alpha set -virtual-pixel transparent -background blue  -channel A -morphology Distance Euclidean:1,20\! +channel _doge.png
convert doge.png -alpha set -virtual-pixel Blue  -channel A -morphology Distance Euclidean:1,20\! +channel _doge.png

безуспешно.Я также рассмотрел виньетирование 4 , которое, как выясняется, создает очень растянутые овалы на моих очень прямоугольных изображениях, делая их непривлекательными, поэтому мне нужно оставить прямоугольник с переходом на черный, если я могу использовать этот переход для полученияс переходом в черный цвет будет достаточно.

с первой командой, которую я получаю, до и после: Before, After Вторая команда выдает ошибкус этой ошибкой:

convert: unrecognized virtual pixel method `Blue' @ error/convert.c/ConvertImageCommand/3177.

Ответы [ 4 ]

0 голосов
/ 15 октября 2018

Несколько хороших ответов было предоставлено выше, но здесь немного другой подход.Прочитайте входное изображение, клонируйте его, раскрасьте его в черный цвет, побрейте его и добавьте синюю рамку, сделайте черный прозрачным, размыте синюю рамку и составьте композицию поверх исходного ввода.Команда может выглядеть примерно так ...

convert input.png -bordercolor blue -fill black \
   \( +clone -colorize 100 -shave 10 -border 10 \
   -transparent black -blur 0x10 \) -composite result.png
0 голосов
/ 15 октября 2018

Вы можете сделать это следующим образом в Imagemagick 6. Я создаю черное изображение и размываю края линейно, а не гауссовым размытием.Затем я использую это в качестве маски, чтобы смешать изображение с синим изображением для получения результатов.

convert doge.png \
\( -clone 0 -fill blue -colorize 100 \) \
\( -clone 0 -fill black -colorize 100 -virtual-pixel white -blur 100x65000 \) \
-compose over -composite \
result.png


enter image description here

Вы также можетеиспользуйте размытие в стиле Гаусса следующим образом:

convert doge.png \
\( -clone 0 -fill blue -colorize 100 \) \
\( -clone 0 -fill black -colorize 100 -virtual-pixel white -blur 0x50 \) \
-compose over -composite \
result2.png


enter image description here

Вот меньшее расстояние размытия:

convert doge.png \
\( -clone 0 -fill blue -colorize 100 \) \
\( -clone 0 -fill black -colorize 100 -virtual-pixel white -blur 20x65000 \) \
-compose over -composite \
result3.png


enter image description here

Если вы хотите, чтобы он был более насыщенным синим, вы можете управлять этим с помощью оператора -level:

convert doge.png \
\( -clone 0 -fill blue -colorize 100 \) \
\( -clone 0 -fill black -colorize 100 -virtual-pixel white -blur 20x65000 -level 0x50% \) \
-compose over -composite \
result4.png


enter image description here

Для Imagemagick 7 используйте магию, а не конвертируйте.

0 голосов
/ 15 октября 2018

Небольшое отклонение от превосходного ответа ImageMagick от emcconville - сохранить прозрачность и просто сгладить синее.

convert doge.png \
-alpha set -virtual-pixel transparent -channel A -morphology Distance Euclidean:1,20\! +channel  \
-background blue -compose over -flatten \
result.png


enter image description here

0 голосов
/ 15 октября 2018

Вы делаете морфологию на альфа-канале, но как насчет только красных и зеленых каналов.

 convert doge.png -alpha set -virtual-pixel transparent -background blue \
         -channel RG -morphology Distance Euclidean:1,20\! +channel _doge.png

doge

...