Нанесение на изображение текста с подчеркиванием

При нанесении текста на изображение не редко случается
необходимость, вывода подчеркнутого текста. К сожалению, для этих целей стандартных функций нет. Но, реализовать
подчеркивание можно. Для этого необходимо вывести текст и
нарисовать под ним линию. Загвоздка заключается в том, что
необходимо знать координаты нанесения линии, а также ее длину.
Для определения начала линии можно воспользоваться
координатами самого текста, только прибавить к значению по оси Y
размер самого текста. А для получения длины, можно
воспользоваться функцией imagettfbbox, которая определяет
положение текста. Функция возвращает массив с восемью
элементами, координаты углов, обрамляющей текст рамки.
Используя полученные, координаты, можно легко высчитать длину
текста.
Пример:
$width = 200; // ширина изображения 
$height = 100; // высота изображения 
// создаем изображение, на котором будем рисовать  
$img = imagecreatetruecolor($width, $height); 
// цвет заливки фона 
$rgb = 0xFFFFFF;  
// заливаем холст цветом $rgb 
imagefill($img, 0, 0, $rgb);  
 
// путь к шрифту 
$fontName = "impact.ttf";  
// размер шрифта 
$fontSise = 18;  
$x = 50; // отступ слева 
$y = 50; // отступ справа 
// текст, который будем наносить на картинку 
$text = "Любой текст"; 
// цвет шрифта 
$textColor = 0x000000;  
// отступ линии от начала текста 
$paddingLine = 3;  
 
// выводим текст 
imagettftext($img, $fontSise, 0, $x, $y,  $textColor, $fontName, $text); 
// определяем размер текста 
$textbox = imagettfbbox( 
$fontSise, 0, $fontName, $text 
); 
// вычисляем ширину текста 
$text_width = $textbox[2] - $textbox[0]; 
// толщина линии 
imagesetthickness($img, 3);  
// рисуем линию 
imageline ( 
$img, $x, $y + $paddingLine, $x + $text_width,  
$y + $paddingLine, $textColor 
); 
   
// заголовок для браузера 
header("Content-Type: image/png"); 
// выводим результат в браузер 
imagepng($img);  
// очищаем память после выполнения скрипта 
imagedestroy($img);
Теги:
imagettfbbox
Добавлено: 28 Марта 2018 14:29:26 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...