<?php
// создаем изображение 400x300
$image = imagecreate(400, 300);
// устанавливаем цвет бордюра многоугольника
$col_poly = imagecolorallocate($image, 255, 255, 255);
// рисуем многоугольник
imagepolygon($image,
array (
0, 0,
100, 200,
300, 200
),
3, $col_poly);
// вывод картинки в браузер
header("Content-type: image/png");
imagepng($image);
?>
imageFilledPolygon
Рисует закрашенный многоугольник с заданными вершинами.
Синтаксис:
int imageFilledPolygon(int im, array points, int num_points, int color)
Эта функция делает практически то же самое, что и imagePolygon(), за исключением одного очень важного свойства: полученный многоугольник целиком заливается цветом color.
При этом правильно обрабатываются вогнутые части фигуры, если она не выпукла.
<?php
// задаем массив с координатами углов
$values = array(
0 => 40, // x1
1 => 50, // y1
2 => 20, // x2
3 => 240, // y2
4 => 60, // x3
5 => 60, // y3
6 => 240, // x4
7 => 20, // y4
8 => 50, // x5
9 => 40, // y5
10 => 10, // x6
11 => 10, // y6
);
// создаем картинку 250x250
$im = imagecreate(250, 250);
// задаем цвет заполнения многоугольника
$blue = imagecolorallocate($im, 0, 0, 255);
// рисуем многоугольник
imagefilledpolygon($im, $values, 6, $blue );
// вывод каринки в браузер и ее закрытие
header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>
Работа с фиксированными шрифтами
Библиотека GD имеет некоторые возможности по работе с текстом и шрифтами. Шрифты представляют собой специальные ресурсы, имеющие собственный идентификатор, и чаще всего загружаемые из файла или встроенные в GD. Каждый символ шрифта может быть отображен лишь в моноцветном режиме, т.е. "рисованные" символы не поддерживаются. Встроенных шрифтов всего 5 (идентификаторы от 1 до 5), чаще всего в них входят моноширные символы разных размеров. Остальные шрифты должны быть предварительно загружены.
imageLoadFont
Загрузка шрифта.
Синтаксис:
int imageLoadFont(string file)
Функция загружает файл шрифтов file и возвращает идентификатор шрифта - это будет цифра, большая 5, потому что пять первых номеров зарезервировано как встроенные. Формат файла - бинарный, а потому зависит от архитектуры машины. Это значит, что файл со шрифтами должен быть сгенерирован по крайней мере на машине с процессором такой же архитектуры, как и у той, на котором вы собираетесь использовать PHP.
Формат файла со шрифтом
Число символов в шрифте (nchars)
Левая колонка задает смещение начала данных внутри файла, а группами цифр, записанных через дефис, определяется, до какого адреса продолжаются данные.
imageFontHeight
Установка высоты шрифта.
Синтаксис:
int imageFontHeight(int font)
Функция возвращает высоту в пикселях символов в заданном шрифте.
imageFontWidth
Установка ширины шрифта.
Синтаксис:
int imageFontWidth(int font)
Функция возвращает ширину в пикселях символов в заданном шрифте.
imageString
Выводит строку в горизонтальном направлении.
Синтаксис:
int imageString(int im, int font, int x, int y, string s, int color)
Функция выводит строку s в изображение im, используя шрифт font и цвет color.Координаты (x, y) будут координатами верхнего левого угла прямоугольника, в который вписана строка.
Если параметр font задан как 1, 2, 3, 4 или 5, то выводится шрифт соответствующего размера.
<?php
// создаем изображение 100x30
$im = imagecreate(100, 30);
// задаем цвет текста
$textcolor = imagecolorallocate($im, 0, 0, 255);
// выводим надпись в верхнем левом углу
imagestring($im, 5, 0, 0, "Hello world!", $textcolor);
// выводим изображение в браузер
header("Content-type: image/jpg");
imagejpeg($im);
?>
imageStringUp
Выводит строку в вертикальном направлении.
Синтаксис:
int imageStringUp(int im, int font, int x, int y, string s, int color)
Эта функция также выводит строку текста, но не в горизонтальном, а в вертикальном направлении.
Верхний левый угол задается координатами (x, y).
Если параметр font задан как 1, 2, 3, 4 или 5, то выводится шрифт соответствующего размера.
imageChar
Вывод символа горизонтально.
Синтаксис:
int imageChar(int im, int font, int x, int y, string c, int color)
Функция выводит символ c в горизонтальном положении в месте на рисунке, заданном координатами (x, y). Шрифт символа задается параметром font. Если этот параметр принимает значение от 1 до 5, то используются встроенные шрифты. Цвет символа задается параметром color.
<?php
// создаем картинку размером 100x100
$im = imagecreate(100, 100);
$string = "PHP";
// задаем цвет символа
$black = imagecolorallocate($im, 0, 0, 0);
// Выведем символ "P" в верхнем левом углу
imagechar($im, 1, 0, 0, $string, $black);
// выведем картинку в браузер
header("Content-type: image/png");
imagepng($im);
?>
imageCharUp
Вывод символа вертикально.
Синтаксис:
int imageCharUp(int im, int font, int x, int y, string c, int color)