imagemagick 蒙太奇:插入不同大小的图像

imagemagick montage: insert images of different sizes

我有一张尺寸为 800x600 的图片 a.png,以及两张尺寸为 400x300 的图片 b.png 和 c.png。我想将三张没有尺寸变化的图片拼接(插入)成一张尺寸为 800x900 的 png 图片,这样 a.png 位于顶部,b.png 和 c.png 并排下面.

如何使用 imagemagick convert 或 montage 执行此操作?

生成样本图像,实际大小的 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 to the right"
  • -append 意思是 "append below".

请注意,除了 +append-append 之外,还有名为 +smush-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,请将 magick 替换为 convert