Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Создания текста в картинке
Форумы портала PHP.SU » » Графика в PHP » Создания текста в картинке

Страниц (1): [1]
 

1. Vlad_IT - 14 Сентября, 2012 - 01:04:38 - перейти к сообщению
Доброй ночи. Такая проблема, над которой ломаю голову уже несколько часов. Нужно создать функцию, которая принимает три аргумента, текст, размер шрифта и семейство шрифта, то есть его имя. Требуется создать изображение с полученным текстом, который будет иметь полученный размер и имя шрифта, и сохранить его на сервере. Такое конечно реализовать не проблема, но проблема стоит в том, что нужно что-бы размер изображения был динамичный, то есть по ширине написанного текста, с учетом того что шрифт может быть разный. Помогите пожалуйста решить эту проблему.
2. DeertOff - 14 Сентября, 2012 - 04:09:15 - перейти к сообщению
$arrRect = imageftbbox(размер шрифта, угол, файл шрифта, текст)

$arrRect[0] - нижняя левая x-координата
$arrRect[1] - нижняя левая y-координата
$arrRect[2] - нижняя правая x-координата
$arrRect[3] - нижняя правая y-координата
$arrRect[4] - верхняя правая x-координата
$arrRect[5] - верхняя правая y-координата
$arrRect[6] - верхняя левая x-координата
$arrRect[7] - верхняя левая y-координата

PHP:
скопировать код в буфер обмена
  1.  
  2. $text = 'Строка';
  3. $fontFile = 'font.ttf';
  4. // узнаём обрамляющий прямоугольник для строки
  5. $arrRect = imageftbbox(10, 0, $fontFile, $text);
  6. // создаём изображение по размерам прямоугольника
  7. $image = imagecreatetruecolor($arrRect[2] - $arrRect[0],
  8.                             -($arrRect[7] - $arrRect[1]));
  9. // создаём цвет для текста
  10. $black = imagecolorallocate($image, 0, 0, 0);
  11. // заливаем изображение белым
  12. imagefill($image, 0, 0, 0xffffff);
  13. // пишим текст
  14. imagefttext($image, 10, 0, $arrRect[6], -$arrRect[7], $black, $fontFile, $text);
  15. // создаём файл с картинкой "не обязательно png"
  16. imagepng($image, 'img.png');
  17. // удаляем изоброжение из памяти
  18. imagedestroy($image);
  19.  
3. Vlad_IT - 14 Сентября, 2012 - 11:35:26 - перейти к сообщению
DeertOff, это замечательно, то что нужно. Спасибо!

 

Powered by ExBB FM 1.0 RC1