如何合并单个 PDF 或图像文件中的图像

Moh*_*ani 14 command-line image-processing

我有一些要合并的图像。我的意思是,如果我有 5 张图像,我想以这种方式排列它们:

平铺布局

我想使用命令来执行此操作,以便我可以使用 Bash 脚本。例如,命令可能是这样的:

foo image1 image2 image3 image4 image5
Run Code Online (Sandbox Code Playgroud)

我有很多图像,因此该命令应该能够处理大量文件。

输出可以是 PDF 甚至是图像格式。

Rin*_*ind 20

请参阅( ) 中的montage命令。imagemagicksudo apt-get install imagemagick

montage -geometry 250x250+0+0 image1.png image2.png out.png
Run Code Online (Sandbox Code Playgroud)

这将调整每个图像的大小(至 250 像素且不变形)并无边距地组合它们。

更多蒙太奇例子


您还可以使用convert(使用通配符的示例):

convert -append pixpixp-*.jpg newpix.jpg
Run Code Online (Sandbox Code Playgroud)


Oli*_*Oli 6

前几天我也在做类似事情。似乎有网格。在我的情况下,我将可变数量的图像通过管道传输到网格中,我只想创建一个 17 宽的图像,无论有多高的图像。

montage -mode concatenate $(printf 'rose: %.0s' {1..136}) -resize 100x80 -tile 17x output.jpg
Run Code Online (Sandbox Code Playgroud)

那只是使用 136 个玫瑰图像来形成一个 8 格高的网格。显然,您需要更改$(...)输入图像列表的组。并且您需要将 tile 变量设置为类似于2x您只想设置图块数量的值。

在输出到 PDF 方面,您可以更改扩展名。所以你会看到类似的东西:

montage -mode concatenate $(printf 'rose: %.0s' {1..5}) -tile 2x out.pdf
Run Code Online (Sandbox Code Playgroud)