Как добавить обводку только к некоторым символам в строке, используя PHP ImageMagick? - PullRequest
0 голосов
/ 21 февраля 2012

Скажем, у меня есть следующий код:

$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 Ответ

1 голос
/ 21 февраля 2012
$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 ())

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...