Как добавить обводку только к некоторым символам в строке, используя 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'))
но задавался вопросом, был ли более простой способ.
Спасибо!
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 были правильными (2-й параметр в функции annotateImage())