Image Magick根据文本点数对齐文本点

时间:2016-06-03 07:31:45

标签: php image algorithm imagemagick imagemagick-convert

是否有可能以某种方式得到一个用图像magick绘制的文本的宽度?

我当前的转换命令如下所示:

  

convert -size 720x480 -background#000 xc:black -fill white -stroke   白色   -font Arial -pointsize 18 \ -draw" text 72,370' NavP1'" \   -font Arial -pointsize 18 \ -draw" text,''" \   -font Arial -pointsize 18 \ -draw" text,''" \   -font Arial -pointsize 18 \ -draw" text 370,370' Extras'" \   -font Arial -pointsize 18 \ -draw" text 430,370' opt'" \   -font Arial -pointsize 18 \ -draw" text 550,370' NavP1'" \ C:\ xampp \ htdocs \ labelText.bmp

我是以编程方式完成此操作,并希望根据我有多少导航点将导航点对齐并相互对齐

(我从php formular / database获取导航点的数量)。

这是一个关于我的意思和它应该是什么样子的草图

________________________________________
|                                       |
|                                       |
|                                       |
|             navp1  navp2              |
|_______________________________________|

________________________________________
|                                       |
|                                       |
|                                       |
|         navp1  navp2  navp3           |
|_______________________________________|

我对该图像有一个固定的宽度(720px)。

因此,我有最少2个导航点,最多6个导航点。

我的想法是,如果我能得到每个导航(文本/单词)点的宽度,我可以正确计算并对齐点。

但是我知道找不到能够做到这一点的功能。

我试过Mark Setchell,但我的命令似乎有错误

  

convert -debug annotate -size 720x480 -background#000 xc:black -fill   white -stroke white \ -font Arial -pointsize 18 \ -draw" text 72,370   ' NAV1'" \ -font Arial -pointsize 18 \ -draw" text 180,370' nav2'" \   -font Arial -pointsize 18 \ -draw" text 430,370' nav3'" \ -font Arial -pointsize 18 \ -draw" text 550,370' nav4'" \ C:\ xampp \ htdocs \ test.bmp

但是我收到以下错误消息:

  

没有定义图像' -background' @   误差/ convert.c / ConvertImageCommand / 325

1 个答案:

答案 0 :(得分:0)

我不确定我完全理解你在寻找什么,但我认为获得字体指标可能会有所帮助。试试这个并在开始“Metrics:”的行中查找所需的所有数字:

convert -debug annotate -size 720x480 -background red xc:black -fill white -stroke white -font Arial -pointsize 18 -draw "text 82,370 'Nav P1'" a.png

<强>输出

2016-06-03T09:50:12+01:00 0:00.010 0.010u 6.9.4 Annotate convert[85474]: annotate.c/RenderFreetype/1421/Annotate
  Font /Library/Fonts/Arial.ttf; font-encoding none; text-encoding none; pointsize 18
2016-06-03T09:50:12+01:00 0:00.020 0.010u 6.9.4 Annotate convert[85474]: annotate.c/GetTypeMetrics/843/Annotate
  Metrics: text: Nav P1; width: 58; height: 21; ascent: 16; descent: -4; max advance: 36; bounds: 1.95312,0  6.70312,14; origin: 59,0; pixels per em: 18,18; underline position: -4.5625; underline thickness: 2.34375
2016-06-03T09:50:12+01:00 0:00.020 0.010u 6.9.4 Annotate convert[85474]: annotate.c/RenderFreetype/1421/Annotate
  Font /Library/Fonts/Arial.ttf; font-encoding none; text-encoding none; pointsize 18