Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 如何使用图像魔术将图像淡入蓝色?_Image Processing_Imagemagick_Png_Imagemagick Convert - Fatal编程技术网

Image processing 如何使用图像魔术将图像淡入蓝色?

Image processing 如何使用图像魔术将图像淡入蓝色?,image-processing,imagemagick,png,imagemagick-convert,Image Processing,Imagemagick,Png,Imagemagick Convert,很像这个问题,我试图实现一个淡入淡出,但一个恒定的颜色,而不是淡入透明,如何能淡出所有的边缘,去蓝色,而不是透明? 我尝试了以下方法: 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-pixe

很像这个问题,我试图实现一个淡入淡出,但一个恒定的颜色,而不是淡入透明,如何能淡出所有的边缘,去蓝色,而不是透明? 我尝试了以下方法:

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
没有成功。我还考虑了渐晕,它在我的矩形图像上产生了非常拉伸的椭圆形,使它们不具有吸引力,因此我需要保持渐晕为黑色的矩形,如果我可以使用此渐晕来产生渐晕为黑色,这就足够了

在第一个命令之前和之后,我得到以下信息: , 第二个命令出现以下错误:

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

你在阿尔法通道上做形态学,但是红色和绿色通道呢

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

您可以通过在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

也可以使用类似高斯的模糊,如下所示:

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

以下是较小的模糊距离:

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

如果您希望它更深蓝,那么您可以使用-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


对于Imagemagick 7,请使用magick而不是转换。

emcconville出色的Imagemagick答案的一个细微变化是保持透明度并与蓝色对比

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


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

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

前后图像会有帮助。@MarkSetchell你以为你想淡入蓝色?是的,问题就在这里,不是淡入蓝色,而是透明!我如何使图像魔术褪色为一种颜色,而不是透明