使用ImageMagic混合多个图像

Mir*_*rrG 1 imagemagick imagemagick-convert

IMG1 IMG2

我的问题如下:

我有几个.png文件.每个文件都有一个特定颜色的小点.所有文件都具有相同的大小.我的问题是如何将它们叠加在一起,以便不同颜色的斑点将是这些颜色的混合,一种颜色与另一种颜色不完全重叠?该-flatten选项组合图像,但在示例橙色(img1)颜色将被棕色(img2)覆盖,而我想要一个混合颜色(褐色)点.

我试过了:

convert -evaluate-sequences mean - 没有帮助

convert -layers merge - 没有帮助

composite -blend - 帮助,但只能合并两个图像

谢谢你的任何提示

Mar*_*ell 13

不确定你的图像是什么样的,因为你只提供了2个,而我期待两个输入图像和一个结果!

所以,让我们自己制作两个:

convert -size 200x100 xc:none -fill black -draw "circle 80,50 130,50"  black.png
convert -size 200x100 xc:none -fill orange -draw "circle 120,50 170,50"  orange.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 在此输入图像描述

然后我想你想要这个:

convert orange.png black.png -compose overlay -composite result.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

或许你的意思是luminize混合模式:

convert orange.png black.png -compose luminize  -composite result.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果您想尝试其他混合模式,可以使用:

identify -list compose
Run Code Online (Sandbox Code Playgroud)

获得所有这些的列表.

Atop
Blend
Blur
Bumpmap
ChangeMask
Clear
ColorBurn
ColorDodge
Colorize
CopyAlpha
CopyBlack
CopyBlue
CopyCyan
CopyGreen
Copy
CopyMagenta
CopyRed
CopyYellow
Darken
DarkenIntensity
DivideDst
DivideSrc
Dst
Difference
Displace
Dissolve
Distort
DstAtop
DstIn
DstOut
DstOver
Exclusion
HardLight
HardMix
Hue
In
Intensity
Lighten
LightenIntensity
LinearBurn
LinearDodge
LinearLight
Luminize
Mathematics
MinusDst
MinusSrc
Modulate
ModulusAdd
ModulusSubtract
Multiply
None
Out
Overlay
Over
PegtopLight
PinLight
Plus
Replace
Saturate
Screen
SoftLight
Src
SrcAtop
SrcIn
SrcOut
SrcOver
VividLight
Xor
Run Code Online (Sandbox Code Playgroud)

如果你想全部检查:

for b in $(identify -list compose); do convert -gravity center -pointsize 72 -label "$b" orange.png black.png -compose $b -composite  miff:- ; done | montage -geometry +0+0 miff: montage.png
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 感谢您提供精彩的示例图像和生成它的代码! (3认同)