Справочник по PHP - white cat
Шрифт:
Интервал:
Закладка:
Две точки называются связанными сильно, если у них совпадает, по крайней мере, одна координата, а по другой координате они отличаются не более, чем на 1 в любую сторону.
imageFillToBorder
Заливка области, ограниченной бордюром.
Синтаксис:
int imageFillToBorder(int im, int x, int y, int border, int color)
Эта функция очень похожа на imageFill(), только она выполняет закраску цветом color не одноцветных точек, а любых, но до тех пор, пока не будет достигнута граница цвета border.
imagePolygon
Рисует многоугольник с заданными вершинами.
Синтаксис:
int imagePolygon(int im, array points, int num_points, int color)
Эта функция рисует в изображении im многоугольник, заданный своими вершинами. Координаты углов передаются в массиве points, причем $points[0]=x0, $points[1]=y0, $points[2]=x1, $points[3]=y1 и т.д.
Параметр num_points указывает общее число вершин - на тот случай, если в массиве их больше, чем нужно нарисовать. Многоугольник не закрашивается - только рисуется его граница цветом color.
<?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)
Функция выводит символ c в вертикальном положении в месте на рисунке, заданном координатами (x, y). Шрифт символа задается параметром font. Если этот параметр принимает значение от 1 до 5, то используются встроенные шрифты. Цвет символа задается параметром color.
Работа со шрифтами 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).