Imagemagick 图像以适当的边距彼此相邻

Imagemagick images next to each other with proper margin

我正在尝试创建一个具有透明背景的 png 文件,我在其中将图像并排放置。

到目前为止我的命令是这样的:

convert --% -bordercolor none -background none -gravity center logo.png -border 5x5 ( img1.jpg img2.jpg img3.jpg -border 5x5 +append ) ( img4.jpg img5.jpg img6.jpg -border 5x5 +append ) -append -border 5x5 -resize 720x480 output.png

它为我创建了这张图片

我要如何更改我的命令才能使图像显示如下?

(我把背景设为灰色,这样可以看到白色的文字,后面的背景应该是透明的)

我尝试了 Mark Setchell 的建议,命令目前看起来是这样的:

convert -background none -bordercolor none -gravity west \
C:\xampp\htdocs\app\storage\images\Img_1.jpg label:"1" +swap -append label:"text 1" -append -write miff:- +delete \
C:\xampp\htdocs\app\storage\images\Img_2.jpg label:"2" +swap -append label:"text 2" -append -write miff:- +delete \
C:\xampp\htdocs\app\storage\images\Img_3.jpg label:"3" +swap -append label:"text 3" -append -write miff:- +delete \
C:\xampp\htdocs\app\storage\images\Img_4.jpg label:"4" +swap -append label:"text 4" -append -write miff:- +delete \
C:\xampp\htdocs\app\storage\images\Img_5.jpg label:"5" +swap -append label:"text 5" -append -write miff:- +delete \
C:\xampp\htdocs\app\storage\images\Img_6.jpg label:"6" +swap -append label:"text 6" -append miff:- |
montage -set label '' miff:- -background pink -tile 3x2 -geometry +15+5 miff:- |
convert -size 800x500 xc:gray80 -gravity center miff:- -composite -gravity north C:\xampp\htdocs\app\storage\images\logo.png -geometry +0+30 -composite C:\xampp\htdocs\app\storage\images\result.png

您可以通过多种方式实现。这是一个:

方法一

#!/bin/bash
convert -background none -bordercolor none -gravity west \
   \( 1.png label:"1" +swap -append label:"text 1" -append -border 5x5 \) \
   \( 2.png label:"2" +swap -append label:"text 2" -append -border 5x5 \) +append \
   \( 3.png label:"3" +swap -append label:"text 3" -append -border 5x5 \) +append \
 \( \
   \( 4.png label:"4" +swap -append label:"text 4" -append -border 5x5 \) \
   \( 5.png label:"5" +swap -append label:"text 5" -append -border 5x5 \) +append \
   \( 6.png label:"6" +swap -append label:"text 6" -append -border 5x5 \) +append \
 \) -append  \
 -gravity center -extent 800x550 \
 -gravity north logo.png -geometry +0+30 -composite result.png

方法二

这样您就可以使用第一个 convert 命令将标签放在每张图片的上方和下方,然后将所有 6 张带标签的图片流式传输到 montage 中,以进行网格布局(粉红色)你然后从那里回到另一个 convert 以创建灰色背景 canvas 并在顶部写上徽标。

#!/bin/bash
convert -background none -bordercolor none -gravity west \
   1.png label:"1" +swap -append label:"text 1" -append -write miff:- +delete \
   2.png label:"2" +swap -append label:"text 2" -append -write miff:- +delete \
   3.png label:"3" +swap -append label:"text 3" -append -write miff:- +delete \
   4.png label:"4" +swap -append label:"text 4" -append -write miff:- +delete \
   5.png label:"5" +swap -append label:"text 5" -append -write miff:- +delete \
   6.png label:"6" +swap -append label:"text 6" -append miff:- |
   montage -set label '' miff:- -background pink -tile 3x2 -geometry +15+5 miff:- |
   convert -size 800x500 xc:gray80 -gravity center miff:- -composite -gravity north logo.png -geometry +0+30 -composite result.png

抱歉,我不知道或不明白为什么 Windows 在解析命令方面如此糟糕,但经过多次摆弄后,以下似乎有效 - 我不知道为什么!

convert -background none -bordercolor none -gravity west ^
   1.png label:"1" +swap -append label:"text 1" -append -write miff:- +delete ^
   2.png label:"2" +swap -append label:"text 2" -append -write miff:- +delete ^
   3.png label:"3" +swap -append label:"text 3" -append -write miff:- +delete ^
   4.png label:"4" +swap -append label:"text 4" -append -write miff:- +delete ^
   5.png label:"5" +swap -append label:"text 5" -append -write miff:- +delete ^
   6.png label:"6" +swap -append label:"text 6" -append miff:- | montage -set label "" miff:- ^
   -background pink -tile 3x2 -geometry +15+5 miff:- | convert -size 800x500 ^
   xc:gray80 -gravity center miff: -composite -gravity north logo.png -geometry +0+30 -composite result.png