Выбрать главу

<?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)