Справочник по PHP


Работа со шрифтами 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: &#937;");  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");?>




Начало  Назад  Вперед



Книжный магазин