Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: Котеров Д. В. - Самоучитель PHP 4
<<-[Весь Текст]
Страница: из 287
 <<-
 
$s,int $e,int $c) 
Функция imageArc() рисует в изображении $im дугу сектора эллипса от угла $s до 
$e (углы указываются в градусах против часовой стрелки, отсчитываемых от гори- 
зонтали). Эллипс рисуется такого размера, чтобы вписываться в прямоугольник 
($x,$y,$w,$h), где $w и $h задают его ширину и высоту, а $x и $y — координаты 
ле- 
вого верхнего угла. Сама фигура не закрашивается, обводится только ее контур, 
для 
чего используется цвет $c. 
Закраска произвольной области 
int imageFill(int $im, int $x, int $y, int $col) 
Функция imageFill() выполняет сплошную заливку одноцветной области, содер- 
жащей точку с координатами ($x,$y) цветом $col. Нужно заметить, что современные 

алгоритмы заполнения работают довольно эффективно, так что не стоит особо забо- 

титься о скорости ее работы. Итак, будут закрашены только те точки, к которым 
можно проложить "одноцветный сильно связанный путь" из точки ($x,$y). 
Две точки называются связанными сильно, если у них совпадает по крайней 
мере одна координата, а по другой координате они отличаются не более, чем 
на 1 в любую сторону. 
int imageFillToBorder(int $im, int $x, int $y, int $border, int $col) 
Эта функция очень похожа на imageFill(), только она выполняет закраску не од- 
ноцветных точек, а любых, но до тех пор, пока не будет достигнута граница цвета 


Глава 23. Работа с изображениями 325 
$border. Под границей здесь понимается последовательность слабо связанных то- 
чек. 
Две точки называются слабо связанными, если каждая их координата отлича- 
ется от другой не более, чем на 1 в любом направлении. Очевидно, всякая 
сильная связь является также и слабой. 
Многоугольники 
int imagePolygon(int $im, list $points, int $num_points, int $col) 
Эта функция рисует в изображении $im многоугольник, заданный своими вершина- 
ми. Координаты углов передаются в массиве-списке $points, причем 
$points[0]=x0, $points[1]=y0, $points[2]=x1, $points[3]=y1, и т. д. Пара- 
метр $num_points указывает общее число вершин — на тот случай, если в массиве 
их больше, чем нужно нарисовать. Многоугольник не закрашивается — только рису- 
ется его граница цветом $col. 
int imageFilledPolygon(int $im, list $points, int $num_points, int $col) 
Функция imageFilledPolygon() делает практически то же самое, что и 
imagePolygon(), за исключением одного очень важного свойства: полученный мно- 
гоугольник целиком заливается цветом $col. При этом правильно обрабатываются 
вогнутые части фигуры, если она не выпукла. 
Работа с пикселами 
int imageSetPixel(int $im, int $x, int $y, int $col) 
Эта функция практически не интересна, т. к. выводит всего один пиксел цвета 
$col в 
изображении $im, расположенный в точке ($x,$y). Не думаю, чтобы с помощью нее 
можно было закрасить хоть какую-нибудь сложную фигуру, потому что, как мы зна- 
ем, PHP довольно медленно работает с длинными циклами, а значит, даже рисование 

обычной линии с использованием этой функции будет очень дорогим занятием. 
int imageColorAt(int $im, int $x, int $y) 
В противоположность своему антиподу — функции imageSetPixel() — функция 
imageColorAt() не рисует, а возвращает цвет точки, расположенной на координа- 
тах ($x,$y). Возвращается идентификатор цвета, а не его RGB-представление. 
Функцию удобно использовать, опять же, для определения, какой цвет в картинке 
должен быть прозрачным. Например, все у той же птички на кислотно-зеленом фоне 
мы достоверно знаем, что прозрачный цвет точно приходится на точку с 
координата- 
ми (0,0). Таким образом, теперь мы сможем в любой момент сменить цвет фона на 

Часть IV. Стандартные функции PHP 326 
мертвенно-голубой (который тоже у реальной птицы вряд ли встретится), и 
програм- 
ма все равно будет работать правильно. 
Работа с фиксированными шрифтами 
Библиотека GD имеет некоторые возможности по работе с текстом и шрифтами. 
Шрифты представляют собой специальные ресурсы, имеющие собственный иденти- 
фикатор, и чаще всего загружаемые из файла или встроенные в GD. Каждый символ 
шрифта может быть отображен лишь в моноцветном режиме, т. е. "рисованные" сим- 
волы не поддерживаются. Встроенных шрифтов всего 5 (идентификаторы от 1 до 5), 
чаще всего в них входят моноширинные символы разных размеров. Остальные 
шрифты должны быть предварительно загружены. 
Загрузка шрифта 
int imageLoadFont(string $file) 
Функция загружает файл шрифтов и возвращает иденти
 
<<-[Весь Текст]
Страница: из 287
 <<-