KnigaRead.com/

White cat - Справочник по PHP

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн white cat, "Справочник по PHP" бесплатно, без регистрации.
Перейти на страницу:

Две точки называются связанными сильно, если у них совпадает, по крайней мере, одна координата, а по другой координате они отличаются не более, чем на 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).

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*