使用imagemagick在特定点上添加图像上的文本

waq*_*qas 22 imagemagick

我想在特定点的图像上添加文本,并希望它在中心对齐.如何从顶部指定保证金?我想从顶部指定以像素/英寸为单位的边距.

目前我正在使用此命令:

 convert temp.jpg -gravity Center  -pointsize 30 -annotate 0 'Love you mom' temp1.jpg 
Run Code Online (Sandbox Code Playgroud)

它是在图像中心写文字.我希望文字移到顶部.

这就是我得到的: 在此输入图像描述

这就是我要的: 在此输入图像描述

And*_*rea 31

尝试使用-gravity North(这会将文本移动到图像的顶部),然后添加偏移量(-annotate +0+100)以向下移动文本:

convert temp.jpg -gravity North -pointsize 30 -annotate +0+100 'Love you mom' temp1.jpg 
Run Code Online (Sandbox Code Playgroud)


小智 11

convert -pointsize 40 -fill blue -draw 'text 600,600 "Love You Mom"' temp1.jpg temp2.jpg
                                              ^   ^
                                              |   |
                                        From Left |
                                                From Top
Run Code Online (Sandbox Code Playgroud)

  • 欢迎来到堆栈溢出!虽然此代码可以解决问题,但[包括解释](//meta.stackexchange.com/q/114762) 如何以及为何解决问题确实有助于提高帖子的质量,并可能会带来更多结果赞成票。请记住,您是在为将来的读者回答问题,而不仅仅是现在提问的人。请[编辑]您的答案以添加解释并指出适用的限制和假设。 (5认同)

Mat*_*ato 7

相反,您可以使用-draw指定您想要文本的位置。

例如:

convert -font helvetica -fill white -pointsize 60 -gravity center -draw "text 0,300 'TEXT TO BE DISPLAYED'" /image_address/Image_input.png /image_address/Image_output.png 
Run Code Online (Sandbox Code Playgroud)

在这种情况下,0是de x坐标,300是y坐标,但是x坐标并不是很重要,因为- 重心已经存在。

请记住,坐标0,0是左上角。

  • 值得注意的是,“-font <param>”可以获取“.ttf”文件的完整路径。 (5认同)