0

环境

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

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

所有提到的图像 ( a.jpg, c.jpg, f.jpg) 都保证具有相同的分辨率。

任务

创建一个固定宽度montage(例如out.jpg),其中NULL值被替换为分辨率与、、的常用分辨率一致的黑色图像。我想避免创建实际图像,而是更愿意根据需要即时创建图像。a.jpgc.jpgf.jpgblack.jpg

4

1 回答 1

1

使用 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”。我很确定该命令的其他所有内容都会以相同的方式工作。

于 2021-01-21T00:10:19.837 回答