如何使用PHP ImageMagick将笔划仅添加到字符串中的某些字符


How to add a stroke to only some characters in a string using PHP ImageMagick?

假设我有以下代码:

$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'))的东西,但不知道是否有更简单的方法。

谢谢!

$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()函数中的第二个参数)

,则它可以工作