1

我有一个大小为 800x600 的图像 a.png,以及两个大小分别为 400x300 的图像 b.png 和 c.png。我想将三个没有大小变化的图像蒙太奇(插入)成一个大小为 800x900 的 png 图像,这样 a.png 位于顶部,b.png 和 c.png 并排位于下方。

如何使用 imagemagick convert 或 montage 做到这一点?

4

1 回答 1

2

生成样本图像,实际大小的 1/10:

magick -size 80x60 -background red  -gravity center label:"A"  a.png
magick -size 40x30 -background lime -gravity center label:"B"  b.png
magick -size 40x30 -background blue -gravity center label:"C"  c.png

现在,您可以加载 A,然后在括号内加载 B 和 C,并将其并排放置为新图像,然后将结果附加到 A 下方:

magick a.png \( b.png c.png +append \) -append result.png

在此处输入图像描述

或者,如果您不喜欢括号,您可以将 B 和 C 并排连接到一个图像中,加载 A,交换顺序,使 A 位于顶部,然后在下面附加组合图像:

magick b.png c.png +append a.png +swap -append result.png

注意以下之间的区别:

  • +append意思是“附加到右边”,和
  • -append意思是“附加在下面”

请注意,除了+appendand之外-append,还有一些较新的工具称为+smushand -smush,它们的功能完全相同,但采用的参数是偏移附加的像素数。因此,如果你这样做+smush 5,它会做同样的事情,+append但会在图像之间的新间隙中显示 5 个像素的背景颜色。如果您使用负偏移量,它将附加在同一个位置,但将两个图像重叠偏移量。

这是一个示例,我将背景设为洋红色,并以 10 像素的间隙涂抹 B 和 C。然后将背景更改为黄色,然后以 15 像素的偏移量将 A 下面的结果弄脏。

magick -background magenta  b.png c.png +smush 10  a.png +swap -background yellow -smush 15  result.png

在此处输入图像描述

如果仍在使用 v6 ImageMagick,请替换magickconvert.

于 2020-04-13T09:41:50.003 回答