我不确定我是否正确理解了您的问题。
这就是我的看法。假设您有 8 张不同尺寸的不同图像。出于演示目的,我将让 ImageMagick 将它们创建为 8 个不同的色块:
convert -size 90x90 xc:yellow y.png
convert -size 120x120 xc:red r.png
convert -size 60x210 xc:green g.png
convert -size 150x180 xc:blue b.png
convert -size 30x60 xc:cyan c.png
convert -size 150x90 xc:magenta m.png
convert -size 90x120 xc:gray Gr.png
convert -size 120x90 xc:black K.png
您可以通过多种不同方式对这些补丁进行蒙太奇:
convert \( y.png r.png g.png b.png +append \) \
\( c.png m.png Gr.png K.png +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage0.png
此命令不会缩放不同的补丁。它将它们放置在 2 行和 4 个补丁中,并以原始大小对其进行蒙太奇。空白是补丁不“适合”的地方:

convert \( y.png r.png g.png b.png -resize x60 +append \) \
\( c.png m.png Gr.png K.png -resize x60 +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage1.png
此命令将所有不同的补丁缩放到 60 像素的共同高度(保留它们各自的纵横比)并将它们放置在 2 行和 4 个补丁中:

convert \( y.png r.png g.png b.png -resize 60x +append \) \
\( c.png m.png Gr.png K.png -resize 60x +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage2.png
此命令将所有不同的补丁缩放到 60 像素的共同宽度(保留它们各自的纵横比)并将它们放置在 2 行和 4 个补丁中:

convert \( y.png r.png g.png b.png -resize 60x80\! +append \) \
\( c.png m.png Gr.png K.png -resize 60x80\! +append \) \
-append \
-mattecolor lightblue \
-frame 1x1 \
montage3.png
此命令将所有不同的补丁缩放到 60x80 像素的尺寸(覆盖它们的原始纵横比)并将它们放置在 2 行和 4 个补丁中:
