Функция выводит символ c в вертикальном положении в месте на рисунке, заданном координатами (x, y). Шрифт символа задается параметром font. Если этот параметр принимает значение от 1 до 5, то используются встроенные шрифты. Цвет символа задается параметром color.
Работа со шрифтами TrueType и PostScript Type 1
Библиотека GD поддерживает также работу со шрифтами PostScript и TrueType. Для того чтобы заработали приведенные ниже функции, PHP должен быть откомпилирован и установлен вместе с библиотекой FreeType, доступной по адресу http://www.freetype.org. В Windows-версии PHP она установлена по умолчанию.
imageTTFText
Рисование текста шрифтом TrueType.
Синтаксис:
array imageTTFText(int im, int size, int angle, int x, int y, int color, string fontfile, string text)
Эта функция помещает строку text в изображение im цветом color. Как обычно, color должен представлять собой допустимый идентификатор цвета. Параметр angle задает угол наклона в градусах выводимой строки, отсчитываемой от горизонтали против часовой стрелки. Координаты (x, y) указывают положение так называемой базовой точки строки (обычно это ее левый нижний угол). Параметр size задает размер шрифта, который будет использоваться при выводе строки. fontfile должен содержать имя TTF-файла, в котором и храниться шрифт.
Функция возвращает список из 8 элементов. Первая их пара задает координаты (x,y) верхнего левого угла прямоугольника, описанного вокруг строки текста в изображении, вторая пара - координаты верхнего правого угла, и т.д. Так как в общем случае строка может иметь любой наклон angle, здесь требуются 4 пары координат.
Строка текста text может содержать символьные последовательности UTF-8 (в виде {) для вывода символов с кодами, большими 255.
При использовании отрицательного значения индекса цвета color отключается сглаживание шрифта (antialiasing).
Данная функция требует библиотеке GD и FreeType.
<?php
header("Content-type: image/jpeg");
$im = imagecreate(400, 30);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
// Replace path by your own font path
imagettftext($im, 20, 0, 10, 20, $black, "/path/arial.ttf",
"Testing... Omega: Ω");
imagejpeg($im);
imagedestroy($im);
?>
Следующий пример выводит строку по центру рисунка
<?php
$gi = imageCreate(200,100);
$bg = imageColorAllocate($gi,0,220,0);
$tx = imageColorAllocate($gi,25,2,228);
$w = imageSX($gi); // ширина рисунка
$h = imageSY($gi); // высота рисунка
imageFilledRectangle($gi,0,0,$w,$h,$bg);
$szf = 20; // размер шрифта
$ang = 240; // угол поворота строки
$str = "Heyou"; // текст строки
$font = "symbol.ttf" // файл шрифта
$sz = imageTTFBBox($szf,$ang,$font,$str);
$sdx = $sz[4]/2;
$sdy = ($sz[7]+$sz[3])/2;
imageTTFText($gi,$szf,$ang,$w/2-$sdx,$h/2-$sdy,$tx,$font,$str);
Header("Content-Type: image/png");
imagePng($gi,"file.png");
?>
imageTTFBBox
Расчет площади, занимаемой строкой шрифта TrueType.
Синтаксис:
array imageTTFBBox(int size, int angle, string fontfile, string text)
Эта функция ничего не выводит в изображение, а просто определяет, какой размер и положение заняла бы строка текста text размера size, выведенная под углом angle в какой-нибудь рисунок. Параметр fontfile задает абсолютный путь к файлу шрифта, который будет использован при выводе.
Возвращаемый список содержит всю информацию о размерах строки в формате, похожем на тот, что выдает функция imageTTFText(). Однако порядок точек в нем отличается.
Содержимое массива, возвращаемого функцией imageTTFBBox():
Координаты могут иметь отрицательные значения.
Функция требует библиотеки GD и FreeType.
imagePSLoadFont
Загрузка из файла шрифта PostScript Type 1.
Синтаксис:
int imagePSLoadFont(string filename)
Возвращает дескриптор загруженного шрифта или FALSE при ошибке (также выводится предупреждение).
<?php
header("Content-type: image/jpeg");
$im = imagecreate(350, 45);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
$font = imagepsloadfont("bchbi.pfb"); // or locate your .pfb files on your machine
imagepstext($im, "Testing... It worked!", $font, 32, $white, $black, 32, 32);
imagepsfreefont($font);
imagejpeg($im, "", 100); //for best quality...your mileage may vary
imagedestroy($im);
?>
Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.
imagePSFreeFont
Выгрузка шрифта PostScript Type 1.
Синтаксис:
void imagePSFreeFont(int fontindex)
Данная функция освобождает память от шрифта, заданного параметром fontindex.
Эта функция доступна только в том случае, если PHP был скомпилирован с опцией --enable-t1lib.
imagePSEncodeFont
Установка схемы перекодировки текста.
Синтаксис:
int imagePSEncodeFont(int font_ndex, string encodingfile)
Загружает файл перекодировки encodingfile для шрифта font_index. Поскольку шрифты PostScript по умолчанию не используют символы с кодами, большими 127, перекодировка требуется при необходимости использования не английского языка. Формат файла описан в документации Tllibs, также с библиотекой поставляются 2 готовых файла: IsoLatinl.enc и IsoL.atin2.enc.
Если перекодировка используется постоянно, установите параметр ps.default_encoding в файле конфигурации со значением имени файла перекодировки, который будет загружаться автоматически.