为缺少文件的图像创建固定大小的蒙太奇

Create fixed-size montage of images with missing files

设置

假设我们有一个包含 N 个元素的列表,其中一个元素可以 或者 是图像的路径(例如 a.jpg) 或 NULL 表示缺少文件。

示例 (N = 6): a.jpg,NULL, c.jpg,NULL,NULL,f.jpg

所有提及的图像(a.jpgc.jpgf.jpg)保证具有相同的分辨率。

任务

创建一个固定宽度的 montage(例如 out.jpg),其中 NULL 值替换为 black分辨率与a.jpgc.jpgf.jpg常用分辨率一致的图片。我不想创建实际的 black.jpg,而是希望根据需要即时创建图像

使用 ImageMagick 的“蒙太奇”命令,如果您的图像尺寸已知,那么您可以将其包含在命令中,并且如果您可以生成图像文件的文本文件“list.txt”并将“xc” :black" 在没有像这样的图像的每一行...

image00.png
image01.png
image02.png
image03.png
image04.png
xc:black
image06.png
image07.png
xc:black
xc:black
image10.png
image11.png

您可以 运行 ImageMagick 的“蒙太奇”命令是这样的...

magick montage @list.txt -tile 3x4 -geometry 160x160+3+3! out.png

文本文件名称前面的“@”告诉 IM 从那里读取输入图像。 “-tile”描述了结果中的列数和行数。 “-geometry”设置是您放置图像尺寸以及列和行之间的间距的位置。 “xc:black”图像是单个黑色像素,但感叹号将它们强制为“-geometry”参数中的 W 和 H 维度。

这将在列表中所有包含“xc:black”的地方创建黑色图像。如果您还想用黑色填充空格,请在命令中添加“-background black”。

这对我来说适用于 IMv7 和“magick montage ...”对于 IMv6,您只需使用“montage”。我很确定有关该命令的所有其他内容都会以相同的方式工作。