Текст выравнивания по правому краю в изображении с imagettftext (), PHP

Я настраиваю динамические изображения подписи форума для своих пользователей, и я хочу смочь поместить их имя пользователя на изображение. Я могу сделать это очень хорошо, но так как имена пользователей являются различными длинами, и я хочу выровнять по правому краю имя пользователя, как я могу пойти о выполнении этого, когда я должен установить координаты y и x.

$im = imagecreatefromjpeg("/path/to/base/image.jpg");
$text = "Username";
$font = "Font.ttf";
$black = imagecolorallocate($im, 0, 0, 0);

imagettftext($im, 10, 0, 217, 15, $black, $font, $text);
imagejpeg($im, null, 90);
24
задан James Simpson 14 March 2010 в 22:20
поделиться

2 ответа

Используйте функцию imagettfbbox, чтобы получить ширину строки, а затем вычтите ее из ширины изображения, чтобы получить начальный x -координат.

$dimensions = imagettfbbox($fontSize, $angle, $font, $text);
$textWidth = abs($dimensions[4] - $dimensions[0]);
$x = imagesx($im) - $textWidth;
60
ответ дан 28 November 2019 в 22:29
поделиться

Предварительно рассчитайте размер имени пользователя с помощью imagettfbbox () .

Из полученной ширины вы можете вычесть позицию по оси x, с которой ваш текст должен начинаться.

3
ответ дан 28 November 2019 в 22:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: