imagettftext - Рисование текста на изображении шрифтом TrueType
Вернуться к: GD и функции для работы с изображениями Функции
imagettftext
(PHP 4, PHP 5, PHP 7)
imagettftext — Рисование текста на изображении шрифтом TrueType
Описание
$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го можно использовать числовые ссылки (в формате: €). Также поддерживается шестнадцатеричный формат (©). Строки в кодировке UTF-8 можно передавать напрямую.
Именованные сущности, вроде ©, не поддерживаются. Используйте функцию 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(400, 30);
// Создание цветов
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// Текст надписи
$text = 'Тест...';
// Замена пути к шрифту на пользовательский
$font = 'arial.ttf';
// Тень
imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);
// Текст
imagettftext($im, 20, 0, 10, 20, $black, $font, $text);
imagepng($im);
imagedestroy($im);
?>
Результатом выполнения данного примера будет что-то подобное:
Примечания
Замечание:
Для работы функции необходимо наличие установленных GD и » FreeType библиотек.
Смотрите также
- imagettfbbox() - Получение параметров рамки обрамляющей текст написанный TrueType шрифтом
Вернуться к: GD и функции для работы с изображениями Функции