Shell ImageMagick:在与图像A合成之前,使用堆栈B1B2B3进行更改

Shell ImageMagick:在与图像A合成之前,使用堆栈B1B2B3进行更改,shell,imagemagick,Shell,Imagemagick,我使用以下字符串将B个图像中的每个图像与A合成: convert A null: B*.png -gravity center -layers composite AB%d.png 结果是AB1、AB2和AB3,一切正常 下一种情况是在用A.g:-flop、-level等组成B堆栈之前,对B堆栈进行一些更改。保持“AB%d.png”命名模式也很重要 命令行应该如何使用B stack进行初步更改并保持命名模式?通常,ImageMagick命令具有“设置”和“运算符”以及创建画布的功能 “设置”是

我使用以下字符串将B个图像中的每个图像与A合成:

convert A null: B*.png -gravity center -layers composite AB%d.png
结果是AB1、AB2和AB3,一切正常

下一种情况是在用A.g:-flop、-level等组成B堆栈之前,对B堆栈进行一些更改。保持“AB%d.png”命名模式也很重要


命令行应该如何使用B stack进行初步更改并保持命名模式?

通常,ImageMagick命令具有“设置”和“运算符”以及创建画布的功能

“设置”是指背景颜色、填充颜色、重力等设置,这些设置从您在命令行上写入它们的那一刻起一直保持设置状态,直到结束,并应用于右边的所有内容

-crop
-append
这样的“操作符”实际上改变了图像的某些方面,并应用于图像堆栈中当前的所有内容,即图像出现位置左侧的所有内容

创建自己的画布以进行绘制的东西可以被识别,因为它们通常有一个冒号,所以
xc:
渐变:
标签:
都创建画布

如果你想阻止操作员在他们的左边应用太多的东西,你有几种方法可以做到这一点。首先创建要操作的内容并对其进行操作,然后添加其他内容:

convert ChangeMe.png AndMe.png -crop XYZ -level XYZ LeaveMeUnchanged.png -composite ...
并可能在之后使用
+swap
重新订购

或者,使用括号使运算符仅应用于堆栈的有限子集:

convert LeaveMeUnchanged.png \( ChangeMe.png AndMe.png -crop \) ...

因此,在回答您的具体问题时:

convert A null: \( B*.png -flop -level ... \) ...

你是说
转换空值:\(B*.png-flop-level…\)…
?是的,没错。而且它有效!谢谢