Я настраиваю динамические изображения подписи форума для своих пользователей, и я хочу смочь поместить их имя пользователя на изображение. Я могу сделать это очень хорошо, но так как имена пользователей являются различными длинами, и я хочу выровнять по правому краю имя пользователя, как я могу пойти о выполнении этого, когда я должен установить координаты 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);
Используйте функцию imagettfbbox, чтобы получить ширину строки, а затем вычтите ее из ширины изображения, чтобы получить начальный x -координат.
$dimensions = imagettfbbox($fontSize, $angle, $font, $text);
$textWidth = abs($dimensions[4] - $dimensions[0]);
$x = imagesx($im) - $textWidth;
Предварительно рассчитайте размер имени пользователя с помощью imagettfbbox () .
Из полученной ширины вы можете вычесть позицию по оси x, с которой ваш текст должен начинаться.