R 覆盖图像并设置透明度

R 覆盖图像并设置透明度,r,image-processing,imagemagick,R,Image Processing,Imagemagick,我有两个图像,我想把一个覆盖在另一个上面,这样顶层是透明的,并且允许下层的特征在一定程度上显示出来 我正在magic和imager软件包中搜索此功能,但似乎无法完成。找到了一个很好的例子,但它似乎使用了一些地理软件包(光栅格式),但最终结果就是我想要的 图1: 图2 期望结果 使用ImageMagick,您可以从“input1.png”开始,并以特定的透明度覆盖“input2.png”。这个*nix shell格式的命令显示了基本的 magick input1.png \ \( inp

我有两个图像,我想把一个覆盖在另一个上面,这样顶层是透明的,并且允许下层的特征在一定程度上显示出来

我正在
magic
imager
软件包中搜索此功能,但似乎无法完成。找到了一个很好的例子,但它似乎使用了一些地理软件包(光栅格式),但最终结果就是我想要的

图1:

图2

期望结果


使用ImageMagick,您可以从“input1.png”开始,并以特定的透明度覆盖“input2.png”。这个*nix shell格式的命令显示了基本的

magick input1.png \
   \( input2.png -channel A -evaluate multiply 0.5 +channel \) \
   -gravity center -composite result.png
首先读取基本图像。然后在括号内读取覆盖图像,并使用“-evaluate multiply 0.5”将其alpha通道不透明度降低到50%。然后将半透明覆盖层合成到基础图像上

在该命令中,覆盖将居中。在合成之前设置“-gravity…”并使用“-geometry+H+V”指定水平和垂直偏移,可以将覆盖放置在基础图像上任意位置


要从Windows命令行使用此命令,应删除括号“\(…\)”后面的反斜杠“(…)”,并且需要将连续的行反斜杠“\”更改为插入符号“^”。

下面是某人的自定义alpha函数。可能有用。如果你愿意,谢谢!以前发现过,但结果不是我想要的。现在使用
EBImage
,这似乎很有趣。想要将所有绿色像素(包括所有阴影)更改为蓝色,这似乎令人望而生畏,但我们将拭目以待。谢谢!在R中有什么方法可以做到这一点吗?另外,另一个附加组件,我可以使用magick软件包将一种颜色更改为另一种颜色吗?例如,所有绿色实例都将更改为蓝色。我不知道R。我在*nix shell和Windows cmd中使用命令行ImageMagick。至于把一种颜色换成另一种颜色,IM几乎可以做任何你能想象到的事情,从简单到非常复杂,这取决于你的目标。