Lun*_*tik 15 filenames imagemagick image-processing
我知道ImageMagick的annotate命令可以在图像上叠加一些文本,但它可以使用图像的文件名作为此文本吗?我会这样认为,但似乎无法找到确认这一点的直接文件.
毫无疑问,某些参数组合可以管理这个,或者在脚本中有更好的方法吗?
小智 18
这是一个非常古老的条目,但我每次搜索这个主题时都会发现它,但它不起作用(至少对我而言).这里有一些对我有用的东西:
convert input.jpg -gravity South -annotate 0 '%f' output.jpg
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人......
Kur*_*fle 16
Eric L.的回答是正确的 - 来自我的+1!- 但是-annotate并没有让你对文本的外观有太多的控制权.
如果你寻找漂亮,那就去寻找一些有用的东西-composite.您可以使用IM命令首先构建叠加图像(使用半透明背景),然后将其覆盖在原始图像上.
下面是一个使用脚本方法处理当前目录中每个PNG文件的方法,-composite而不是-annotate使用它.这个甚至会自动调整字体大小并使其适合可用的"宽度*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
Run Code Online (Sandbox Code Playgroud)
下面是一个原件和相应输出的示例说明:
!
这是一个使用的命令-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
Run Code Online (Sandbox Code Playgroud)

| 归档时间: |
|
| 查看次数: |
8733 次 |
| 最近记录: |