boolean imagepolygon(resource image, array points, integer number, integer color)
Функция imagepolygon (листинг 16.25) аналогична функции imagefilledpolygon, за исключением того, что многоугольник не заполняется цветом. Аргументом points задается массив значений координат x и y каждой точки. Линия вычерчивается последовательно между всеми точками и, наконец, между последней и первой точками. Результат работы этой функции показан на рис. 16.12.

| Листинг 16.25. Функция imagepolygon_
<?php
// создать красный прямоугольник $image = imagecreate(100,100);
$colorPink = imagecolorallocate($image, 0xFF, 0xCC, 0xCC);
$colorBlack = imagecolorallocate($image, 0, 0, 0);
imagefill($image, 0, 0, $colorPink);
// задать три точки треугольника
$points = array(50, 10, 10, 90, 90, 90);
// начертить треугольник
imagepolygon($image,
$points, count($points)/2,
$colorBlack); // отправить полученное изображение header("Content-type: image/png"); imagepng($image);
?>
Обработка изображений и графики
array imagepsbbox(string text, integer font_identifier, integer size, integer spacing, integer leading, double angle)
Функция imagepsbbox возвращает массив, содержащий пару координат, определяющих рамку, ограничивающую теоретическую текстовую строку. Первые два числа являются координатами x и y нижнего левого угла. Вторая пара чисел является координатами правого верхнего угла.
Аргумент font_identifier является целым числом, возвращенным функцией imagepsloadfont. Аргумент size задает размер в пикселях. Аргумент spacing управляет расстоянием между строками текста по вертикали. Аргумент leading управляет расстоянием по горизонтали между строками текста. Оба выражаются в 1/1000 квадрата "M" и прибавляются к расстояниям, принятым для данного шрифта по умолчанию. Аргументы могут иметь положительное или отрицательное значение. Аргумент angle задает угол в градусах, на который повернут текст. Угол считается для обычной ориентации слева направо.
imagepsencodefont(string file)
Функция imagepsencodefont предназначена для изменения вектора кодирования, использованного для совмещения ASCII-символов с изображениями шрифтов PostScript. По умолчанию шрифты PostScript имеют символы для первых 127 ASCII-кодов.
imagepsextendfont(integer font_identifier, double extension_factor)
Функция imagepsextendfont (листинг 16.26) расширяет или сужает шрифт PostScript. Нормальная ширина шрифта умножается на extension_factor. Пример использования этой функции приведен в описании функции imagepscopyfont. Несколько вызовов этой функции подряд не имеют кумулятивного действия; они всего лишь изменяют расширение. Если необходимо установить нормальную ширину шрифта, используйте коэффициент, равный 1. Результаты работы этой функции показаны на рис. 16.13.

Листинг 16.26. Функции imagepsextendfont и imagepsslantfont

<?php
// задать параметры текста
$font_file = "/usr/share/fonts/default/Type1/n019003l.pfb"; $size = 20; $angle = 0;
$text = "PHP";
$antialias_steps = 16;
$spacing = 0;
$leading = 0;
// создать красный квадрат
$image = imagecreate(100, $size*3);
$colorYellow = imagecolorallocate($image, 0xFF, 0xFF, 0xCC); $colorBlack = imagecolorallocate($image, 0, 0, 0); imagefill($image, 10, 10, $colorYellow); // загрузить шрифт
if(!($myFont = imagepsloadfont($font_file))) {
print("Невозможно загрузить шрифт!"); exit();
}
// напечатать нормальным шрифтом imagepstext($image, $text, $myFont, $size,
$colorBlack, $colorYellow,
0, $size-1, $spacing, $leading,
$angle, $antialias_steps); // расширить шрифт
$myFontExtended = imagepsloadfont($font_file); imagepsextendfont($myFontExtended, 1.5); // записать расширенный текст
imagepstext($image, $text, $myFontExtended, $size, $colorBlack, $colorYellow, 0, ($size*2)-1, $spacing, $leading, 
$angle, $antialias_steps); // создать курсивный шрифт
$myFontSlanted = imagepsloadfont($font_file); imagepsslantfont($myFontSlanted, 1.5); // записать курсивный текст
imagepstext($image, $text, $myFontSlanted, $size, $colorBlack, $colorYellow, 0, ($size*3)-1, $spacing, $leading, $angle, $antialias_steps); // загрузить шрифты imagepsfreefont($myFont); imagepsfreefont($myFontExtended); imagepsfreefont($myFontSlanted); // отправить полученное изображение header("Content-type: image/png"); imagepng($image);
?>
Обработка изображений и графики
imagepsfreefont(integer font_identifier)
Функция imagepsfreefont удаляет шрифт PostScript из памяти. Обычно этого делать не надо, так как PHP сам выгружает шрифты по завершении работы сценария.
resource imagepsloadfont(string file)
Функция imagepsloadfont предназначена для загрузки шрифта PostScript. При этом возвращается идентификатор шрифта для дальнейшего использования другими PostScript-функциями. При ошибочном завершении работы функции возвращается значение FALSE.