array imagettfbbox(integer point_size, integer angle, string font, string text)
Функция imagettfbbox возвращает массив точек, описывающих ограничивающую рамку вокруг текста, которая будет нарисована функцией imagettftext. Точки берутся относительно самой левой точки в основании. Элементы массива относятся к левому нижнему и верхнему углам, верхнему правому и верхнему левому углам (табл. 16.9).
В зависимости от библиотек, имевшихся в наличии при компиляции PHP, эта функция может и отсутствовать.
Обработка изображений и графики
boolean imagettftext(resource image, integer point_size, integer angle, integer x, integer y, integer color, string font, string text)
Функция imagettftext (листинг 16.36) использует шрифт TrueType для создания текстовой строки. Аргументы x и y относятся к самой левой точке основания. Текст будет расходиться из этой точки с заданным углом, который может лежать в пределах 0-360. Нулевой угол соответствует обычному тексту (слева направо). Аргумент font задает полный путь к файлу .ttf. Результат работы функции показан на рис. 16.18.
В зависимости от библиотек, имевшихся в наличии при компиляции PHP, эта функция может и отсутствовать.

Листинг 16.36. Функции imagettfbbox и imagettftext

<?php
/*
** Напечатать текст с помощью шрифта TrueType ** Кроме того, нарисовать за текстом рамку.
*/
// задать параметры текста $size = 40; $angle = 45; $startX = 30; $startY = 90;
$font = "c:windowsfontscomic.ttf"; 
// создать красный квадрат $image = imagecreate(100, 100);
$colorYellow = imagecolorallocate($image, 0xFF, 0xFF, 0x99); $colorGray = imagecolorallocate($image, 0xCC, 0xCC, 0xCC); $colorBlack = imagecolorallocate($image, 0, 0, 0); imagefill($image, 10, 10, $colorYellow); // нарисовать огранивающую рамку
$Box = imagettfbbox($size, $angle, $font, "PHP"); //переместить ограничивающую рамку на начальную точку (100,100) for($index = 0; $index < count($Box); $index += 2)
{
$Box[$index] += $startX; $Box[$index+1] += $startY;
}
// начертить ограничивающую рамку
imagefilledpolygon($image, $Box, count($Box)/2, $colorGray); // напечатать текст
$Box = imagettftext($image, $size, $angle, $startX, $startY, $colorBlack,
$font, "PHP"); // отправить полученное изображение header("Content-type: image/png"); imagepng($image);
?>
Обработка изображений и графики
integer imagetypes()
Функция imagetypes (листинг 16.37) возвращает битовое поле, устанавливающее типы изображений, поддерживаемых версией PHP, выполняющих сценарий. Константы, приведенные в табл. 16.10, используются для проверки наличия файла формата изображения.

Таблица 16.10. Константы, задающие тип изображения
IMG_GIF IMG_PNG IMG_JPEG IMG_WBMP IMG_JPG IMG_XPM 

Листинг 16.37. Функция imagetypes

<?php
$types = imagetypes();
print("Поддерживаемые типы изображений:<br>");
if($types & IMG_GIF)
print('GIF<br>'); if($types & IMG_JPEG)
print('JPEG<br>');
if($types & IMG_PNG)
print('PNG<br>'); if($types & IMG_WBMP)
print('WBMP<br>'); if($types & IMG_XPM)
print('XPM<br>');
?>

boolean imagewbmp(resource image, string file, integer foreground)
Функция imagewbmp отправляет изображение в браузер или записывает его в файл. При указании имени файла создается растровый файл в формате WAP (Wireless Application Protocol). В противном случае изображение отправляется непосредственно в браузер. Необязательный аргумент foreground задает индекс для цвета, который считается фоновым цветом в файлах WBMP.
jpeg2wbmp(string jpeg_file, string wbmp_file, integer height, integer width, integer threshold)
Функция jpeg2wbmp считывает JPEG-файл и записывает WBMP-файл. Необязательный аргумент threshold задает порог преобразования пикселя в черный или белый цвет. Необходимо помнить, что файлы в формате WBMP являются монохромными.
png2wbmp(string png_file, string wbmp_file, integer height, integer width, integer threshold)
Функция png2wbmp считывает PNG-файл и записывает WBMP-файл. Необязательный аргумент threshold задает порог преобразования пикселя в черный или белый цвет. Необходимо помнить, что файлы в формате WBMP являются монохромными.