Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Экзамен / web / example1 / Введение в PHP.doc
Скачиваний:
103
Добавлен:
18.05.2015
Размер:
3 Mб
Скачать

Получение информации об изображении

Функции imagesx() и imagesy(), возвра­щают значения, соответственно, ширины и высоты (в пикселях) изо­бражения для данного ресурса. Синтаксис этих функций выглядит следующим образом:

imagesx($img); imagesy($img).

Еще одна похожая функция – это функция getimagesize().

Для изображений в натуральном цвете, расширение GD предлагает функцию imageistruecolor():

imageistruecolor($img);

Эта функция возвращает булевское значение true, если переданный ей ресурс изображения $img имеет натуральный цвет; в противном случае она возвращает значение false.

Если необходимо узнать, может ли РНР работать с конкретным типом изображений, то лучше всего использовать функцию imagetypes () ;

При выполнении эта функция возвращает битовое поле, сформированное из констант: IMG_GIF | IMG­_JPG | IMG_PNG | IMG_WBMP с использованием логического "ИЛИ". Рассмотрим пример:

<?php

$supported = imagetypes();

if($supported & IMG_JPG) {

echo "версия GD поддерживает изображения в формате JPEG."; }

else {

echo "версия GD не поддерживает изображения в формате JPEG.";

}

?>

Функции рисования прямых и кривых линий

РНР поддерживает рисование линий, прямоугольников, окружностей, эллипсов и многоугольников и построение заполненных форм. Можно выбирать способ рисования линии с помощью стилей и кистей.

В языке РНР рисование линий на холсте осуществляется с помощью функции imageline():

imageline($img,$start_x, $start_y, $end_x, Send_y, $color);

Параметр $img представляет ресурс изображения для рисования прямой линии, начиная с точки, координаты которой определяются параметрами ($start_x, $start_y), до точки с координатами ($end_x, $end_y) с цветом, определяемым параметром $color. Для рисования многоугольников и прямоугольников используются функции imagepolygon () и imagerectangle(), соответственно.

Синтаксис функции imagerectangle () имеет следующий вид:

imagerectangle($img,$topL_x,$topL_y,$bR_x,$bR_y,$color);

Размеры и расположение прямоугольника определяются точками верхнего левого угла ($topL_x, $topL_y) и нижнего правого угла ($bR_x, $bR_y).

Синтаксис функции imagepolygon() выглядит следующим образом:

imagepolygon($img, $points, $num_points, $color);

Параметр $points представляет массив, содержащий координаты (X ;Y) каж­дой вершины, $num_points —общее количество пар (X, Y) в массиве. Рассмотрим пример:

<?php //imagepr6.php

// Create a 500 x 500 image

define("WIDTH", 500);

define("HEIGHT", 500);

$canvas = imagecreatetruecolor(WIDTH, HEIGHT);

// Allocate colors

$pink = imagecolorallocate($canvas, 255, 105, 180);

$green = imagecolorallocate($canvas, 132, 135, 28);

$white = imagecolorallocate($canvas, 0xFF, 0xFF, 0xFF) ;

$black = imagecolorallocate($canvas, 0, 0, 0);

// Draw three rectangles each with its own color

imagerectangle($canvas, 50, 50, 150, 150, $pink);

imagerectangle($canvas, 45, 60, 120, 100, $white);

imagerectangle($canvas, 100, 120, 75, 160, $green);

$num=5;

$mycolor=$white;

$color=0xff;

//рисование прямой

imageline($canvas, 0,0,500,500, $mycolor);

$points = array(20,20,50,HEIGHT/2,WIDTH/2,400,WIDTH-10,HEIGHT-10, WIDTH-10, 0);

//Рисование многоугольника

imagepolygon($canvas, $points, $num, $color);

// Output and free from memory

header('Content-Type: image/jpeg');

imagejpeg($canvas);

imagedestroy($canvas);

?>

GD поддерживает рисование кривых линий, посредством функций imagearc() и imageellipse(). Синтаксис функции, imageellipse ():

imageellipse($img,$centerx,$centery,$width,$height,$color);

Параметры $centerx и $centery задают координаты центра эллипса. Форма эллипса определяется парамет­рами $width и $height. Окружность является частным случаем эллипса. Функция imageellipse() тоже является частным случаем — по отношению к функции рисования дуги. Синтаксис этой функции:

imagearc($img, $center_x, $center_y,$width,$height, $start_ang, $end_ang,$color);

Функция imagearc() требует два дополнительных параметра, $start_ang и $end_ang, которые представляют угол в градусах. Рассмотрим пример использования функций imageellipse() и imagearc()

<?php //imagepr7.php

define("WIDTH", 200);

define("HEIGHT", 100);

$img = imagecreate(WIDTH+100, HEIGHT+200);

$bg = imagecolorallocate($img, 0, 0xFF, 0);

$black = imagecolorallocate($img, 0, 0, 0);

$red = imagecolorallocate($img, 0xFF, 0, 0);

$center_x = (int)WIDTH/2; $center_y = (int)HEIGHT/2;

imageellipse($img, $center_x, $center_y, WIDTH, HEIGHT, $black);

imagearc($img, $center_x, $center_y, WIDTH-5, HEIGHT-5, 0, 360, $red);

header("Content-Type: image/png");

imagepng($img);

?>

Ноль градусов начинается с оси ox.

Соседние файлы в папке example1