问题描述
我们需要将“信息栏”放入数千个图像文件中。大约一个星期左右,我一直在尝试学习 imagemagick,但我无法弄清楚这么多元素,所以我想在这里寻求帮助。
我有“-/+append”元素并在它们之间交换的想法,但是当涉及到 3x3 矩阵单元格和文本/图像混合时,我就是做不到。例如,我可以添加 3 行并在其旁边添加一列,但我无法进行下一步“将另外 2 行附加在一起,然后再次将它们作为列块”,因为当我尝试时,所有这些append 成为整个图像的右侧或底部.. 好吧,当您看到下面的简短图像时,您就会明白..
magick.exe -size 150x100 -gravity center caption:"txt2" caption:"txt3" caption:"txt4" \
-append -size 94x294 xc:white -border 3 -swap 0,1 \
+append outoutout.jpg
仅供参考,例如,行/列的高度/宽度并不重要..这里是 MSPaint 技能:
解决方法
您必须使用括号处理分别创建每个部分。然后,如果您想适当地附加它们。或者,您可以创建背景图像并组合... - 将每个图像组合到正确的位置。
这是 ImageMagick 中使用第二种方法的示例。
Unix 语法:
magick -size 400x400 xc:white \
\( barn.jpg -crop 400x200+0+0 +repage \) \
-geometry +0+0 -compose over -composite \
\( -size 100x200 xc:white -shave 5x5 -bordercolor black -border 5 \) \
-gravity northwest -geometry +0+200 -compose over -composite \
\( -size 100x200 -background white -gravity center -fill black \
-font Candice label:"Text1\n\nText2\n\nText3" \) \
-gravity northwest -geometry +100+200 -compose over -composite \
\( -size 100x200 -background skyblue -gravity center -fill red \
-font Arial label:"First_line\n\n\nSecond_line" \) \
-gravity northwest -geometry +300+200 -compose over -composite \
result.png
参见示例: