Создание изображения с текстом по центру (PHP)

Уроки по PHP, Javascript и т.п.

Создание изображения с текстом по центру (PHP)

Сообщение Александр » 11 дек 2011, 20:50

Создание изображения с текстом по центру (PHP)

В этом коде показано как создать изображение с помощью PHP и как добавить на изображение текст, выравненный по центру изображения.

  1. <?php
  2. /*
  3.  
  4.     http://flapps.ru/forum/ - форум о создании приложений
  5.  
  6. */
  7.  
  8. header('Content-type: image/png');
  9.  
  10. $text = "flapps.ru";
  11.  
  12. // размер изображения
  13. $img = imagecreatetruecolor(150, 150);
  14.  
  15. // цвет фона
  16. $bg = imagecolorallocate($img, 18, 163, 235);
  17. imagefilledrectangle($img, 0, 0, 150, 150, $bg);
  18.  
  19. // шрифт
  20. $font = 'font/verdana.ttf';
  21. // цвет текста
  22. $black = imagecolorallocate($img, 255, 255, 255);
  23.  
  24. // вычисляем сколько места займёт текст
  25. $bbox = imageftbbox(13, 0, $font, $text);
  26.  
  27. // вычисляем координаты для центрирования
  28. $x = (imagesx($img) - $bbox[4])/2;
  29. $y = (imagesy($img) - $bbox[5])/2;
  30.  
  31. // добавляем текст на изображение
  32. imagefttext($img, 13, 0, $x, $y, $black, $font, $text);
  33.  
  34. // выводим изображение
  35. imagepng($img);
  36. // освобождаем память
  37. imagedestroy($img);
  38.  
  39. // http://flapps.ru/forum
  40. ?>


Для того чтобы код работал, нужно подключить шрифт. В коде выше подключается файл шрифта verdana.ttf, который находится в папке font. Папка font в этом случае должна находится в одном каталоге с php файлом. Но можно указать и абсолютный путь к файлу шрифта.

Метод imageftbbox() может вызвать вопросы, т.к. возвращает 8 значений в массиве.
Вот что они означают:
0 lower left corner, X position
1 lower left corner, Y position
2 lower right corner, X position
3 lower right corner, Y position
4 upper right corner, X position
5 upper right corner, Y position
6 upper left corner, X position
7 upper left corner, Y position

За это сообщение автора Александр поблагодарил:
ukhov
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Чтобы убрать блок с рекламой, зарегистрируйтесь на форуме или войдите.

Google
 



Re: Создание изображения с текстом по центру (PHP)

Сообщение boombast1k » 11 дек 2011, 21:36

А я по другому высчитываю вот мой кусок кода:
  1.  
  2. $image_width = imagesx($image);  
  3. $image_height = imagesy($image);
  4.  
  5. $text_box = imagettfbbox($text,$angle,$font,$text1);
  6. $text_width = $text_box[2]-$text_box[0];
  7. $text_height = $text_box[3]-$text_box[1];
  8.  
  9. $x = ($image_width/2) - ($text_width/2);
  10. $y = ($image_height/2) - ($text_height/2);

Ну у меня более крутой способ мне кажется :D,только замороченныйй.
Аватара пользователя
boombast1k

 
Сообщения: 332
Зарегистрирован: 23 июн 2011, 07:31
Благодарил (а): 14 раз.
Поблагодарили: 14 раз.

Re: Создание изображения с текстом по центру (PHP)

Сообщение boombast1k » 14 янв 2012, 22:17

А как подсчитывать из массива?
Аватара пользователя
boombast1k

 
Сообщения: 332
Зарегистрирован: 23 июн 2011, 07:31
Благодарил (а): 14 раз.
Поблагодарили: 14 раз.

Re: Создание изображения с текстом по центру (PHP)

Сообщение Александр » 15 янв 2012, 15:40

boombast1k
Почитай про работу с массивами и про циклы в php.
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
 
Автор темы
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45
Откуда: Санкт-Петербург
Благодарил (а): 126 раз.
Поблагодарили: 771 раз.

Re: Создание изображения с текстом по центру (PHP)

Сообщение ukhov » 03 мар 2012, 12:59

как установить библиотеку, которая поддерживает работу с изображениями? (gd)
Изображение
Аватара пользователя
ukhov
Модератор
Модератор
 
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19
Откуда: Санкт-Петербург
Благодарил (а): 85 раз.
Поблагодарили: 155 раз.


Вернуться в Уроки на другие темы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron