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

Уроки по PHP, Javascript и т.п.
Ответить
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

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

Сообщение Александр »

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

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

Код: Выделить всё

<?php/*     http://flapps.ru/forum/ - форум о создании приложений */ header('Content-type: image/png'); $text = "flapps.ru"; // размер изображения$img = imagecreatetruecolor(150, 150); // цвет фона$bg = imagecolorallocate($img, 18, 163, 235);imagefilledrectangle($img, 0, 0, 150, 150, $bg); // шрифт$font = 'font/verdana.ttf';// цвет текста$black = imagecolorallocate($img, 255, 255, 255); // вычисляем сколько места займёт текст$bbox = imageftbbox(13, 0, $font, $text); // вычисляем координаты для центрирования$x = (imagesx($img) - $bbox[4])/2;$y = (imagesy($img) - $bbox[5])/2; // добавляем текст на изображениеimagefttext($img, 13, 0, $x, $y, $black, $font, $text); // выводим изображениеimagepng($img);// освобождаем памятьimagedestroy($img); // http://flapps.ru/forum?>
Для того чтобы код работал, нужно подключить шрифт. В коде выше подключается файл шрифта 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
Аватара пользователя
boombast1k
Сообщения: 332
Зарегистрирован: 23 июн 2011, 07:31

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

Сообщение boombast1k »

А я по другому высчитываю вот мой кусок кода:

Код: Выделить всё

 $image_width = imagesx($image);  $image_height = imagesy($image); $text_box = imagettfbbox($text,$angle,$font,$text1);$text_width = $text_box[2]-$text_box[0]; $text_height = $text_box[3]-$text_box[1]; $x = ($image_width/2) - ($text_width/2);$y = ($image_height/2) - ($text_height/2);
Ну у меня более крутой способ мне кажется :D,только замороченныйй.
Аватара пользователя
boombast1k
Сообщения: 332
Зарегистрирован: 23 июн 2011, 07:31

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

Сообщение boombast1k »

А как подсчитывать из массива?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

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

Сообщение Александр »

boombast1k
Почитай про работу с массивами и про циклы в php.
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

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

Сообщение ukhov »

как установить библиотеку, которая поддерживает работу с изображениями? (gd)
Ответить