Нанесение текста на изображение, используя шрифты FreeType 2


(PHP 4 >= 4.0.7, PHP 5)

imagefttext Нанесение текста на изображение, используя шрифты FreeType 2

Описание

array imagefttext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text [, array $extrainfo ] )

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

size

Размер шрифта в пунктах.

angle

Угол в градусах, 0 градусов означает расположение текста слева направо. Положительные значения означают поворот текста против часовой стрелки. Например, текст повернутый на 90 градусов нужно будет читать снизу вверх.

x

Координаты x и y определяют отправную точку для первого символа текста (конкретно, левый нижний угол символа). Здесь есть отличие от функции imagestring(), в которой x и y определяют верхний левый угол первого символа. Например, "верхний левый" имеет координаты 0,0.

y

y-координата. Это позиция базовой линии шрифта, в общем случае она не совпадает с низшей точкой в символе.

color

Индекс требуемого цвета текста, см. imagecolorexact().

fontfile

Путь к TrueType шрифту, который требуется использовать.

В зависимости от версии GD библиотеки если fontfile не начинается с /, то в конец названия файла будет добавлено расширение .ttf, и библиотека будет пытаться найти этот файл по адресу, определенному в настройках библиотеки.

При использовании GD библиотеки версий младше 2.0.18 символ space (пробел), как и точка с запятой, использовался в качестве "разделителя путей" для различных файлов шрифтов. При исползовании этой возможности будет выдаваться предупреждение: Warning: Could not find/open font. Решением такой проблемы в этих версиях может быть только исключение пробелов из путей файлов.

В большинстве случаев размещение файлов шрифтов в директории скрипта решает подобные проблемы включения файлов.

<?php
// Задание переменной окружения для GD
putenv('GDFONTPATH=' realpath('.'));

// Имя шрифта для использования (обратите внимание на отсутствие расширения .ttf)
$font 'SomeFont';
?>

text

Текст для вставки в изображение.

extrainfo

Возможние значения массива extrainfo
Ключ Тип Значение
linespacing float Определяет рисование нижнего подчеркивания

Возвращаемые значения

Эта функция возвращает массив, определяющий четыре точки рамки текста. Текст внутри этих границ начинается с левого нижнего угла и поворачивается против часовой стрелки:

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

Примеры

Пример #1 Пример использования imagefttext()

<?php
// Создание изображения 300x100
$im imagecreatetruecolor(300100);
$red imagecolorallocate($im0xFF0x000x00);
$black imagecolorallocate($im0x000x000x00);

// Сделаем краный фон
imagefilledrectangle($im0029999$red);

// Путь к ttf файлу шрифта
$font_file './arial.ttf';

// Рисуем текст 'PHP Manual' шрифтом 13го размера
imagefttext($im13010555$black$font_file'PHP Manual');

// Вывод изображения
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>

Примечания

Замечание: Эта функция нуждается в GD версии 2.0.1 или выше.

Замечание: Эта функция доступна только в случае, если PHP был скомплирован с поддержкой freetype (--with-freetype-dir=DIR )