繁体   English   中英

将ImageMagick蒙太奇与文件名子字符串变量一起使用

[英]Use ImageMagick montage with a file name substring variable

我只有非常基本的编程和命令行技能,因此我对以下内容感到有些困惑。

我有一个包含图像文件的目录,如下所示:

abc_B.jpg
abc_G.jpg
abc_R.jpg
abc_RGB.jpg
defg_B.jpg
defg_G.jpg
defg_R.jpg
defg_RGB.jpg
etc...

我想使用ImageMagick将四个R,G,B和RGB图像组合在一起。 对于单个图像集,这非常简单:

montage *_B.jpg *_G.jpg *_R.jpg *_RGB.jpg [some arguments] montage.jpg 

实际上,我一直在将四个映像集复制到temp目录中,并运行上述命令。 但这对于较大的图像集当然不是很有效或不实用。 但是要在整个目录上运行它,必须有一种方法来获取文件名的“ abc”,“ defg”等部分,并将其放入变量中(让我们将其称为%v)并运行类似的内容:

montage %v_B.jpg %v_G.jpg %v_R.jpg %v_RGB.jpg [some arguments] %v_montage.jpg 

现在,要遍历目录中的文件,可以使用FOR命令。 但是我不知道如何使用四个文件的组来处理该问题,以及如何提取和使用文件名子字符串来使其正常工作。

一些帮助将不胜感激。

它可能看起来像这样-将其存储为GO.BAT:

@ECHO OFF
FOR /F "delims=_" %%G IN ('DIR /B *_R.JPG') DO (
    ECHO MONTAGE %%G_R.JPG %%G_G.JPG %%G_B.JPG %%G_RGB.JPG ... montage_%%G.JPG
)

样本输出

MONTAGE abc_R.JPG abc_G.JPG abc_B.JPG abc_RGB.JPG ... montage_abc.JPG
MONTAGE defg_R.JPG defg_G.JPG defg_B.JPG defg_RGB.JPG ... montage_defg.JPG

如果您喜欢ECHO则可以将其删除,因为此刻它除了告诉您它将做什么之外,什么也不做!

我在命令中使用DIR /B以避免获取标头,并且我仅列出*_R.JPG以便每个文件*_R.JPG干仅出现一次-不会出现四次。

有一个方便的参考这里

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM