你没有做对:-)
您似乎误解了 的含义-label
。
看看官方文档是怎么说的-label
:
标签不是在图像上绘制的,而是通过标签标签或类似机制嵌入到图像数据流中。如果您希望标签在图像本身上可见,请使用 -draw 选项...
试试这个命令:
convert \
http://i.stack.imgur.com/FoTPN.jpg \
-pointsize 48 \
-fill green \
-gravity center \
-draw "text 100,-200 'Day: 0'" \
so-12359743-labelled.png
你应该得到这个结果:
使用时记住这些规则-draw
:
-fill
您可以分别使用、-font
和设置原始颜色、字体和字体边界框颜色-box
。选项按命令行顺序处理,因此请务必在选项之前使用这些-draw
选项。
(我的重点)
或者,-draw
您也可以使用-annotate
将文本放入图像中。(但是,-annotate
使用的语法略有不同,您可以轻松阅读。)
更新
你为什么不接受我关于选项顺序的提示?!?
试试这个命令:
convert \
http://i.stack.imgur.com/h2Exm.jpg \
-background White \
-fill Black \
-pointsize 48 \
-gravity center \
label:'Days: 0' \
-append \
days_2.jpg
你会得到:
请记住,您-append
确实连接了 2 个不同的图像:
- 第一个是您的原始输入图像。
- 第二个是新创建的
-background ... -fill ... -pointsize ... -label ...
。
-append
不支持与 的串联-gravity center
。仅当您还使用 为第二张图片定义了画布大小时,此选项才有意义-size
,但您没有。
在没有预定义画布大小的情况下,该-label
操作将自动创建一个足够大以容纳文本字符串的画布。您可以使用以下命令验证此行为:
convert \
http://i.stack.imgur.com/h2Exm.jpg \
-background White \
-fill Black \
-pointsize 48 \
-gravity center \
label:'abcdefghijklmnopqrstuvwxyz' \
-append \
days_3.jpg
您的使用尝试-gravity center
使我相信您希望文本出现在原始输入图像中间的某个位置。因此我指向-draw
and -annotate
。