imagettftext

(PHP 4, PHP 5, PHP 7)

imagettftext Рисование текста на изображении шрифтом TrueType

Описание

array imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text )

Наносит текст text поверх изображения, используя TrueType шрифт.

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

image

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

size

Размер шрифта. В зависимости от вашей версии GD, он должен быть указан либо в пикселах (GD1) либо в типографских пунктах (GD2).

angle

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

x

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

y

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

color

Индекс цвета. Использование отрицательных индексов создает эффект выключенного сглаживания. См. imagecolorallocate().

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

Текстовая строка в кодировке UTF-8.

Для доступа к символам после 127го можно использовать числовые ссылки (в формате: &#8364;). Также поддерживается шестнадцатеричный формат (&#xA9;). Строки в кодировке UTF-8 можно передавать напрямую.

Именованные сущности, вроде &copy;, не поддерживаются. Используйте функцию html_entity_decode(), чтобы декодировать их в UTF-8 строки.

Если символ не поддерживается шрифтом, вместо него будет нарисован незакрашенный прямоугольник.

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

Возвращает массив из 8 элементов, представляющих 4 точки - координаты углов рамки обрамляющей текст. Точки представлены в таком порядке: левый нижний угол, правый нижний, верхний правый, верхний левый. Углы указаны относительно текста, то есть "верхний левый" означает верхний левый угол текста, если расположить его горизонтально. В случае ошибки функция вернет FALSE.

Список изменений

Версия Описание
5.2.0 Стало возможным задавать код сущности в тексте text шестнадцатеричным числом.

Примеры

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

В этом примере будет создано изображение PNG с белым фоном размером 400x30 пикселов и надписью "Тест..." черным цветом (с серой тенью) шрифтом Arial.

<?php
// Тип содержимого
header('Content-Type: image/png');

// Создание изображения
$im imagecreatetruecolor(40030);

// Создание цветов
$white imagecolorallocate($im255255255);
$grey imagecolorallocate($im128128128);
$black imagecolorallocate($im000);
imagefilledrectangle($im0039929$white);

// Текст надписи
$text 'Тест...';
// Замена пути к шрифту на пользовательский
$font 'arial.ttf';

// Тень
imagettftext($im2001121$grey$font$text);

// Текст
imagettftext($im2001020$black$font$text);

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

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagettftext()

Примечания

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

Смотрите также

  • imagettfbbox() - Получение параметров рамки обрамляющей текст написанный TrueType шрифтом
  • imagefttext() - Нанесение текста на изображение, используя шрифты FreeType 2