问题描述

我们有百张图片,需要将文件名添加到图片上,那实际上就是如何向多张图片添加文字。我们并不懂得 Photoshop 之类的图片处理软件该如何操作。

该笔记将记录:如何通过命令行批量为文件添加文本(文本内容则是文件名,当然你也可以替换为其他内容)

解决办法

关键命令

TEXT="Some Text"
convert -font helvetica -undercolor Black -fill blue -pointsize 36 \
    -draw "text 15,50 '$TEXT'" \
    input.jpg ouput.jpg

# -font - 指定字体文件路径
# -undercolor - 指定字体区域背景色
# -fill - 指定字体颜色
# -pointsize - 字体大小
# -draw - 要绘制的文本
# input.jpg - 原图
# ouput.jpg - 输出图片

批量操作

for file_name in $(/bin/ls)
do
    convert -font helvetica -undercolor Black -fill blue -pointsize 36 \
        -draw "text 15,50 '$file_name'" "$file_name" "${file_name}-with-txt"
done

 

参考文献

How to Write Text On Image using Linux Command
How to add a background color to drawn text