如何使用ImageMagick优化页面中的多个图像

问题描述

假设我在一个文件夹中有一堆不同大小的图像。目标是以最小的空白使图像适合多个页面(例如A4)。不应涉及任何压缩或调整大小。可以旋转某些图像是可以接受的。
这是我想出的,但是没有尝试以任何方式“拟合”图像:

montage *.jpg -mode concatenate -tile 2x2 -page A4 -geometry +20+20 out.pdf

是否可以使用imagemagick和蒙太奇开关?
我猜想计算几何算法应该更改上面命令的2x2和+ 20 + 20部分,对吧?

解决方法

在ImageMagick 7(7.0.10-23或更高版本)中,有一个用于制作拼贴的新功能称为Ashlar。但是它会调整大小以将所有提供的图像放入分配的空间中。

请参见https://imagemagick.org/script/formats.php#pseudo

magick *.jpg -define ashlar:best-fit=true ashlar:canvas.png[1000x1000+5+5]

enter image description here

[1000x1000 + 5 + 5]指定输出尺寸以及图像之间x和y的最小间距。


这是A4尺寸的结果:

magick *.jpg -define ashlar:best-fit=true ashlar:canvas2.jpg[595x842++0+0]

enter image description here