如何使用 imagemagick/montage 使图像等距?

How do I make the images equidistant using imagemagick/montage?

目前我正在使用这个命令:

montage IMG*.JPG -tile 3x1 -geometry 150x100+40+40 -background '#000000' triptych.jpg

它会产生这样的输出(添加了红线):

问题(如图所示)是我的图像之间有太多 space,这让我很难过。

我正在寻找看起来更像这样的东西,边框始终相等:

我查看了联机帮助页和几个在线指南,但我尝试的 none 个选项(-mode concatenate,将几何形状更改为 +40+20)达到了我想要的效果。

如何使用 imagemagick 获得我想要的输出?

如果您只是制作三联画,您可能会更好地使用 convert +append 将图像排成一行并使用间隔符。因此,如果您的图像是 1.png2.png3.png:

convert -background black \
  1.png xc:black[10x] 2.png xc:black[10x] 3.png +append \
  -bordercolor black -border 10 result.png

xc:black[10] 只是您可以明确设置宽度的两个间隔符。然后用+append将三个带有间隔的图像设置在水平行中。最后,在最后,我用 -border.

在整个地块周围加上了边框

或者,展示您如何完全控制所有方面:

convert -background black \
  1.png xc:black[15x] 2.png xc:black[5x] 3.png +append \
 -bordercolor black -border 40 result.png

正如 Wayne 在评论中所说,您也可以将所有图像调整为统一大小,而它们在 -append 之前仍然是分开的,因此您可以这样做以确保没有图像宽度超过400 像素。

convert -background black \
  1.png xc:black[10x] 2.png xc:black[10x] 3.png -resize 400x\> +append \
  -bordercolor black -border 10 result.png

如果您想要更多的控制权,您可以像这样单独调整图像的大小:

convert -background black               \
  \( 1.png -resize WxH \) xc:black[10x] \
  \( 2.png -resize AxB \) xc:black[10x] \
  \( 3.png -resize MxN \) +append       \
  -bordercolor black -border 10 result.png

如果您想要垂直三联画,请使用 -append 代替 +append 并使用 xc:black[x10] 而不是 xc:black[10x] 设置间隔高度。

convert -background black \
  1.png xc:black[x10] 2.png xc:black[x10] 3.png -append \
  -bordercolor black -border 10 result.png

关键字:三联画、双联画、蒙太奇、摄影师、摄影、照片、间距、间隔符、填充

另一种方法是分两步完成。

montage img-*.png -background '#000' -geometry +20+20 step-1.png # step 1
convert step-1.png -bordercolor '#000' -border 20 step-2.png # step 2

通过第 1 步,您获得了绿色间距。在第 2 步中,您得到了红色间距