我想要这样的照片:
TTTTTTTTTTTTTTTT
E P1 F P2 F P3 E
================
E P4 F p5 F P6 E
BBBBBBBBBBBBBBBB
其中P {1..6}是大小相等的矩形图片,E表示一些水平间距,=表示一些垂直间距,T表示一些顶部间距,B表示一些底部间距。
我想用一个命令来做这件事,但我很确定用蒙太奇来表达它实际上是不可能的。
然而,可能有多个蒙太奇调用可能。我还没有尝试过,但更一般来说,蒙太奇似乎是一个相当特殊的目的工具,具有相当弱的语法来表达图片。
这个特定的任务(脚本化)是否有更好的东西?
答案 0 :(得分:0)
如果T
,B
,E
,=
,F
是不同的值,P{1..6}
是不同的图像。它可能不值得尝试快捷方式,但要特别建立每一行和一列。以下示例是一个使用bash变量作为占位符的ImageMagick命令。
B="-size x15 xc:"
E="-size 5x xc:"
F="-size 10x xc:"
T="-size x25 xc:"
V="-size x20 xc:" # V is an alias for `=`
EQUALLY_SIZED="-size 20x30"
P1="${EQUALLY_SIZED} xc:CadetBlue1"
P2="${EQUALLY_SIZED} xc:firebrick"
P3="${EQUALLY_SIZED} xc:ForestGreen"
P4="${EQUALLY_SIZED} xc:lavender"
P5="${EQUALLY_SIZED} xc:LemonChiffon"
P6="${EQUALLY_SIZED} xc:OldLace"
convert $T \
\( $E $P1 $F $P2 $F $P3 $E +append \) \
$V \
\( $E $P4 $F $P5 $F $P6 $E +append \) \
$B \
-append \
output.png
此示例有效,因为B
,T
和& V
除高度外没有任何价值。 E
& F
没有价值,只有宽度。如果我们将FPO spacer图像更新为橙色画布......
O="xc:orange"
B="-size x15 ${O}"
E="-size 5x ${O}"
F="-size 10x ${O}"
T="-size x25 ${O}"
V="-size x20 ${O}" # V alias `=`
......我们可以验证预期结果。