微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 imagemagick cli 处理多个元素?

如何解决如何使用 imagemagick cli 处理多个元素?

我们需要将“信息栏”放入数千个图像文件中。大约一个星期左右,我一直在尝试学习 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 技能:

Final Output Idea

解决方法

您必须使用括号处理分别创建每个部分。然后,如果您想适当地附加它们。或者,您可以创建背景图像并组合... - 将每个图像组合到正确的位置。

这是 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

enter image description here

参见示例:

parenthesis processing

appending

convert ... -composite

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。