0

假设我有以下代码:

$draw = new ImagickDraw(); // prep text
$draw->setFillColor('#00ff00');
$draw->setFontSize(12);
$draw->setStrokeWidth(4);
$draw->setStrokeColor(new ImagickPixel('#ff0000'));
// etc.

$image = new Imagick(); // prep image
// etc.

// add text to image
$image->annotateImage($draw, 10, 10, 0, 'Hello, World!');

让我们假设它有效(它确实有效——我刚刚在这里删减了它)。有没有一种简单的方法可以让我改变每个字符的笔画宽度?

我正在考虑使用类似的东西,$image->queryFontMetrics($text, 'H'))但想知道是否有更简单的方法。

谢谢!

4

1 回答 1

1
$draw = new ImagickDraw(); // prep text
$draw->setFillColor('#00ff00');
$draw->setFontSize(12);
$draw->setStrokeColor(new ImagickPixel('#ff0000'));
// etc.

$image = new Imagick(); // prep image
// etc.

// add text to image
$draw->setStrokeWidth(4);
$image->annotateImage($draw, 10, 10, 0, 'He');
$draw->setStrokeWidth(5);
$image->annotateImage($draw, 12, 10, 0, 'llo, ');
$draw->setStrokeWidth(6);
$image->annotateImage($draw, 15, 10, 0, 'Wor');
$draw->setStrokeWidth(7);
$image->annotateImage($draw, 18, 10, 0, 'ld!');

像这样的东西会起作用还是太笨重?如果字符串始终相同并且您弄清楚 $x 尺寸是正确的(annotateImage() 函数中的第二个参数),它可能会起作用

于 2012-02-21T10:39:23.607 回答