我想不按自然顺序(左-右-上-下)对图像进行排序,而是按上-下-左-右的顺序。因此,当我有 8 张图像时,我希望将前 4 张图像放在第一列中,将图像 5-8 放在第二列中。
1 5
2 6
3 7
4 8
但正如蒙太奇使用指南我得到:
1 2
3 4
5 6
7 8
我正在使用
montage -mode concatenate -tile 2x4 input_*.png output.png
我发现了一个类似的问题here,但是使用
-scene
的答案不会影响结果。
另一种方法是分两步完成,因此首先使用
montage -mode concatenate -tile 1x{nrOfRows} input_*.png output.png
创建行,然后使用 montage -mode concatenate -tile {nrOfColumns}x1 output*.png result.png
创建包含上一个命令的输出的列。
问题是,目前我有 1024 张图像,并且希望它们的尺寸为 64x16,因此 output.png 变成了
output_0.png
到 output_63.png
。所以当我运行第二个命令时,顺序是:
output_0.png
output_1.png
output_10.png
...
output_19.png
output_2.png
output_20.png
....
所以有些行不正确。
感谢每一个提示!
(目前我通过 Windows 机器上的 cmd 进行测试,但后来想在 Linux 机器上使用 PHP 进行测试)
总结一下:
rows=10
columns=20
left to right, top to bottom
顺序连接图像:
montage -mode concatenate -tile ${columns}x${rows} input*.jpg output.jpg
left to right, top to bottom
顺序连接图像:
montage -mode concatenate -tile 1x${rows} input*.jpg _tmp_%04d.jpg
montage -mode concatenate -tile ${columns}x1 _tmp_*.jpg output.jpg
rm _tmp_*.jpg