Imagemagick 如何获取文本的宽度/高度

Imagemagick 如何获取文本的宽度/高度,imagemagick,truetype,Imagemagick,Truetype,如何在Imagemagick中获取书面文本的宽度/高度 convert -font 'tahoma.ttf' -draw "text 10,10 'the text'" img.png 请看本页: (第三个例子) Concure二进制文件允许您运行用Magick脚本语言(MSL)编写的基于XML的脚本。这些可以使用IMs“query font metrics”(查询字体度量)命令,这似乎是其他二进制文件无法使用的。我们可以使用imagick的queryFontMetrics功能。 请参阅此链接

如何在Imagemagick中获取书面文本的宽度/高度

convert -font 'tahoma.ttf' -draw "text 10,10 'the text'" img.png
请看本页: (第三个例子)


Concure二进制文件允许您运行用Magick脚本语言(MSL)编写的基于XML的脚本。这些可以使用IMs“query font metrics”(查询字体度量)命令,这似乎是其他二进制文件无法使用的。

我们可以使用imagick的queryFontMetrics功能。 请参阅此链接()


此函数的签出响应您将获得宽度和高度。

这确实很晚了,但是,来自:

使用:

Imagick::queryFontMetrics-返回表示字体度量的数组

像这样:

   // Set font.
      $font = PATH/TO/YOUR/CUSTOM/FONT
   // Get dimensions.
   // Create a new Imagick object.
      $imTest = new Imagick();

   // Create an ImagickDraw object.
      $drawTest = new ImagickDraw();

   // Set the font.
      $drawTest->setFont($font);

   // Set the local X and Y.
      $localX = 0;
      $localY = 0;

   // Dump the font metrics, autodetect multiline 
      for ($i = 0; $i < strlen($yourText); $i++) {
         if ($yourText[$i] === ' ') {
            $tempX += $imTest->queryFontMetrics($drawTest, $yourText[$i])['textWidth'];
         } else {
            $tempX += $imTest->queryFontMetrics($drawTest, $yourText[$i])['originX'] + $imTest->queryFontMetrics($drawTest, $yourText[$i])['boundingBox']['x2'] + $imTest->queryFontMetrics($drawTest, $yourText[$i])['boundingBox']['x1'];
         }    
      }
// Generate image.
   $cmd = 'convert -size ' . $localX . 'x' . $maxY . ' xc:none -gravity Center -font ' . $font . ' -pointsize ' . $fontSize . ' -annotate +0+0 "' . $yourText . '" ' . FINAL/PATH/TO/YOUR/FILE.png';
   $r = shell_exec($cmd);