【问题标题】:Add text on image at specific point using imagemagick使用 imagemagick 在特定点在图像上添加文本
【发布时间】:2014-06-07 20:23:08
【问题描述】:

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

目前我正在使用这个命令:

 convert temp.jpg -gravity Center  -pointsize 30 -annotate 0 'Love you mom' temp1.jpg 

它正在图像中心写入文本。我想让文本移到顶部。

这就是我得到的:

这就是我想要的:

【问题讨论】:

    标签: imagemagick


    【解决方案1】:
    convert -pointsize 40 -fill blue -draw 'text 600,600 "Love You Mom"' temp1.jpg temp2.jpg
                                                  ^   ^
                                                  |   |
                                            From Left |
                                                    From Top
    

    【讨论】:

    • 欢迎来到 Stack Overflow!虽然这段代码可以解决问题,including an explanation 解决问题的方式和原因确实有助于提高帖子的质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。
    • 唯一直截了当的答案。甚至可以妥协到-draw 'text X, Y "Love You, Mom"'
    【解决方案2】:

    相反,您可以使用 -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 
    

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

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

    【讨论】:

    • 值得注意的是-font <param> 可以获取.ttf 文件的完整路径。
    【解决方案3】:

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

    convert temp.jpg -gravity North -pointsize 30 -annotate +0+100 'Love you mom' temp1.jpg 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-11
      • 2017-04-23
      • 2023-03-06
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多