首页 > 解决方案 > 如何使用图像魔术将图像淡化为蓝色?

问题描述

就像这个问题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,结果证明它在我的矩形图像上产生了非常拉伸的椭圆,使它们没有吸引力,因此我需要将淡入淡出保持为黑色矩形,如果我可以使用这种淡入淡出来产生淡入黑色它会够了。

使用第一个命令我得到这个,之前和之后: 前后 第二个命令出错并出现此错误:

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

标签: image-processingimagemagickpngimagemagick-convert

解决方案


上面提供了几个很好的答案,但这里有一个稍微不同的方法。读取输入图像,克隆它,将其着色为黑色,对其进行修整并添加蓝色边框,使黑色透明,模糊蓝色边框,并将其合成到原始输入上。命令可能看起来像这样......

convert input.png -bordercolor blue -fill black \
   \( +clone -colorize 100 -shave 10 -border 10 \
   -transparent black -blur 0x10 \) -composite result.png

推荐阅读