如何使 IMagick Canvas 适合 PHP 中的字体大小?
How to fit IMagick Canvas to font size in PHP?
我想创建一个只包含 1 行文本的简单图像。类似这样:
http://www.imagemagick.org/Usage/text/#label
不过,我想将其保存在 php 的 Imagick 中。我知道字体大小,我希望 canvas 大小适合字体大小,就像示例中那样。不幸的是,我在 PHP 中没有看到使用 Imagick 执行此操作的方法。我为 PHP 找到的所有示例都要求我先定义 canvas 大小。
求助!
您可以通过查询字体指标来执行类似的操作,但可能还有我不知道的更好方法....
#!/usr/local/bin/php -f
<?php
$image = new Imagick();
$draw = new ImagickDraw();
$draw->setFillColor('black');
$draw->setStrokeAntialias(true);
$draw->setTextAntialias(true);
$draw->setFontSize(24);
$text="Hello, I am a lovely label";
// Set typeface
$draw->setFont('Impact');
// Calculate size
$metrics = $image->queryFontMetrics($draw,$text,FALSE);
$w=$metrics['textWidth'];
$h=$metrics['textHeight'];
$y=$metrics['ascender'];
$image->newImage($w,$h,"steelblue","png");
$image->annotateImage($draw,0,$y,0,$text);
$image->writeImage("result.png");
?>
我想创建一个只包含 1 行文本的简单图像。类似这样:
http://www.imagemagick.org/Usage/text/#label
不过,我想将其保存在 php 的 Imagick 中。我知道字体大小,我希望 canvas 大小适合字体大小,就像示例中那样。不幸的是,我在 PHP 中没有看到使用 Imagick 执行此操作的方法。我为 PHP 找到的所有示例都要求我先定义 canvas 大小。
求助!
您可以通过查询字体指标来执行类似的操作,但可能还有我不知道的更好方法....
#!/usr/local/bin/php -f
<?php
$image = new Imagick();
$draw = new ImagickDraw();
$draw->setFillColor('black');
$draw->setStrokeAntialias(true);
$draw->setTextAntialias(true);
$draw->setFontSize(24);
$text="Hello, I am a lovely label";
// Set typeface
$draw->setFont('Impact');
// Calculate size
$metrics = $image->queryFontMetrics($draw,$text,FALSE);
$w=$metrics['textWidth'];
$h=$metrics['textHeight'];
$y=$metrics['ascender'];
$image->newImage($w,$h,"steelblue","png");
$image->annotateImage($draw,0,$y,0,$text);
$image->writeImage("result.png");
?>