imagefttext

(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)

imagefttext Наносит текст на изображение путём рендеринга шрифта библиотекой FreeType 2

Описание

imagefttext(
    GdImage $image,
    float $size,
    float $angle,
    int $x,
    int $y,
    int $color,
    string $font_filename,
    string $text,
    array $options = []
): array|false

Замечание:

До PHP 8.0.0 функция imagefttext() была расширенной версией функции imagettftext(), которая дополнительно поддерживала параметр options. Начиная с PHP 8.0.0 функция imagettftext() стала псевдонимом функции imagefttext().

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

image

Объект GdImage, который возвращает одна из функций, создающих изображения, например, imagecreatetruecolor().

size

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

angle

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

x

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

y

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

color

Индекс цвета текста, см. описание функции imagecolorexact().

font_filename

Путь к TrueType-шрифту.

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

Часто расположение файла шрифта в каталоге скрипта исключает проблемы с включением файлов.

<?php

// Установка переменной окружения для модуля GD
putenv('GDFONTPATH=' . realpath('.'));

// Название шрифта для написания текста. Обратите внимание, что название файла не содержит расширения .ttf
$font = 'SomeFont';

?>

text

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

options

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

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

Функция возвращает массив, который определяет четыре точки обрамления начиная с нижнего левого угла и двигаясь против часовой стрелки:

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

Функция возвращает false, если возникла ошибка.

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

Версия Описание
8.0.0 Параметр image теперь ожидает экземпляр класса GdImage; раньше параметр ждал корректный gd-ресурс (resource).

Примеры

Пример #1 Пример отрисовки текста на изображении функцией imagefttext()

<?php

// Создание изображения размером 300x100
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Установка красного фона
imagefilledrectangle($im, 0, 0, 299, 99, $red);

// Установка пути к ttf-файлу шрифта
$font_file = './arial.ttf';

// Отрисовка текста 'PHP Manual' шрифтом 13-го размера
imagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');

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

imagepng($im);

?>

Примечания

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

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

  • imageftbbox() - Определяет границы прямоугольного обрамления для текста, который библиотека freetype2 выводит на экран путём рендеринга шрифта
  • imagettftext() - Рисует текст на изображении шрифтом TrueType