Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
imagemagick蒙太奇:插入不同大小的图像_Imagemagick_Montage - Fatal编程技术网

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

imagemagick蒙太奇:插入不同大小的图像,imagemagick,montage,Imagemagick,Montage,我有一个尺寸为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

我有一个尺寸为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
    意思是“在下面追加”

请注意,除了
+append
-append
之外,还有名为
+smush
-smush
的较新工具,它们的功能完全相同,但采用的参数是偏移追加的像素数。因此,如果执行
+smush5
操作,它将执行与
+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


如果仍然使用v6ImageMagick,请将
magick
替换为有效的
convert

,非常感谢!我之前尝试过的示例中没有一个提到附加和交换选项,这非常有用!