使用带有文件名子字符串变量的 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
事实上,我一直在将四组图像复制到一个临时目录中,然后 运行 上面的命令。但这对于较大的图像集当然不是很有效或实用。但是要在整个目录上 运行 它需要一种方法来获取文件名的 '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
以避免得到 headers,并且我只列出 *_R.JPG
以便每个文件名词干只出现一次 - 而不是四次。
有一个方便的参考 here。
我只有非常基本的编程和命令行技能,因此我对以下内容感到有点困惑。
我有一个包含图像文件的目录,如下所示:
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
事实上,我一直在将四组图像复制到一个临时目录中,然后 运行 上面的命令。但这对于较大的图像集当然不是很有效或实用。但是要在整个目录上 运行 它需要一种方法来获取文件名的 '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
以避免得到 headers,并且我只列出 *_R.JPG
以便每个文件名词干只出现一次 - 而不是四次。
有一个方便的参考 here。