如何使用 ImageMagick 转换命令将 FontAwesome 图标绘制到图像上?

如何使用 ImageMagick 转换命令将 FontAwesome 图标绘制到图像上?

我一直使用 ImageMagick 使用以下方法将文本写入图像:

convert input.jpg \
  -fill 'rgba(255, 255, 255, 1.0)' \
  -font arial.ttf \
  -pointsize 140 \
  -gravity Center \
  -annotate +0+0 'SOME TEXT' \
  output.jpg

我如何传递 Unicode 值以便使用 FontAwesome 中的图标?

例如,我想将播放视频图标(fa-play-circle [])放到图像上。

答案1

用于printf将正确的 Unicode 值传递给convert

使用该-font选项设置 FontAwesome 字体文件的路径。

用于@-告诉-annotate选项采用管道输入的文本。

env LC_CTYPE=en_US.utf8 \
printf "\uF144"  | \
convert input.jpg \
-fill 'rgba(255, 255, 255, 1.0)' \
-font fontawesome-webfont.ttf \
-pointsize 140 \
-gravity Center \
-annotate +0+0 @- \
output.jpg

答案2

在 Macos (10.15) 上,这对我有用:

printf "\uF144"  | \
convert input.jpg \
-fill 'rgba(255, 255, 255, 1.0)' \
-font fontawesome-webfont.ttf \
-pointsize 140 \
-gravity Center \
-annotate +0+0 @- \
output.jpg

设置env LC_TYPE=en_US.utf8然后调用printf生成:“ \uF144”。printf "\uF144"在没有环境 UTF 编码的情况下运行,打印字符。

我不知道为什么,但我提交这个是为了为 Macos 用户补充 Liam 上述的正确答案。

运行上述程序成功将 fontawesome 图标渲染在生成的 output.jpg 图像中的 input.jpg 之上。

相关内容