ProfiPHPProfiPHP
Категория: Графические функции

Функция Imagettftext

Функция Imagettftext рисует текст на изображении шрифтом TrueType.
array imagettftext( resource $image, float $size, float $angle, int $x, int $y, int $color, string $fontfile, string $text )
Функция Imagettftext наносит текст Text поверх изображения, используя TrueType шрифт.
Параметр Image содержит ресурс изображения, возвращаемый одной из функций создания изображений, например, такой как Imagecreatetruecolor.

В параметре Size указывается размер шрифта в типографских пунктах.

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

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

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

Параметр Fontfile содержит путь к шрифту TrueType, который вы хотите использовать.

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

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

В параметре Text указывается текстовая строка в кодировке UTF-8.

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

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

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

Пример использования Imagettftext:
// Изображение
$img = ImageCreateFromJPEG( $_SERVER['DOCUMENT_ROOT'].'/image.jpg' );
// определяем цвет, в RGB
$color = imagecolorallocate( $img, 0, 0, 0 );
// указываем путь к шрифту
$font = $_SERVER['DOCUMENT_ROOT'].'/arial.ttf';
$text = urldecode( 'Text Add' );
// Добавляем текст
imagettftext( $img, 50, 0, 500, 200, $color, $font, $text );
header( 'Content-type: image/jpeg' );
imagejpeg( $img, NULL, 100 );

Добавить комментарий

Имя:
Текст комментария: