我知道 ImageMagick 的annotate
命令可以在图像上叠加一些文本,但是它可以使用图像的文件名作为该文本吗?我本来是这么认为的,但似乎找不到直接的文档来证实这一点。
毫无疑问,某些参数组合可以管理此问题,或者是否有更好的方法在脚本中执行此操作?
Eric L. 的答案是正确的——我对此+1! - 但-annotate
无法让您对文本的外观进行太多控制。
如果您寻找漂亮,那么宁愿选择使用的东西-composite
。您可以使用 IM 命令先构建覆盖图像(使用半透明背景),然后将其覆盖在原始图像上。
这是一个如何做到这一点的示例-composite
代替-annotate
,使用脚本化方法处理当前目录中的每个 PNG 文件。这个脚本甚至会自动调整字体大小并将其适合可用的“宽度 * 90%”——它是一个 Bash 脚本(请参阅 Win 等效脚本的注释):
for img in *.png; do
width=$(identify -format %W ${img})
width=$(( ${width} * 9 / 10 ))
convert \
-background '#0008' \
-gravity center \
-fill white \
-size ${width}x100 \
caption:"${img}" \
"${img}" \
+swap \
-gravity south \
-composite \
"with-caption-${img}"
done
下面是一份原件和相应输出的示例图:
!
这是一个使用的命令-annotate
,尝试设置默认参数之外的一些内容:
for img in so#12231624-right.png; do
convert \
"${img}" \
-fill red \
-undercolor '#0008' \
-pointsize 24 \
-gravity south \
-annotate +0+5 "${img}" \
"with-annotate-${img}"
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)