Создание сайта, дизайн, web дизайн
Главная Работы Услуги Цены Контакты

 Главная
 Работы
 Услуги
 Цены
 Контакты
 

Самый простой способ нарисовать прямоугольник - это воспользоваться функцией imagerectagle:

int imagerectangle ( resource image, int x1, int y1, int x2, int y2, int color)

Функция imagerectangle() рисует прямоугольник цвета color. Координаты верхнего левого угла прямоугольника - x1:y1, координаты нижнего правого угла прямоугольника - x2:y2. Верхний левый угол изображения имеет координаты 0:0.

Пример 12. Рисование прямоугольника:

<?

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

$im = imagecreatetruecolor(320, 240);

$ink = imagecolorallocate($im, 255, 255, 255);

// Стандартный прямоугольник

imagerectangle($im,80,60,240,180,$ink);

imagepng($im);

imagedestroy($im);

?>

Результат работы этой программы выглядит следующим образом:

 

Рисование закрашенного прямоугольника

Для рисования закрашенного прямоугольника используется функция imagefilledrectangle:

int imagefilledrectangle ( resource image, int x1, int y1, int x2, int y2, int color)

Она рисует закрашенный прямоугольник цвета color. Координаты верхнего левого угла прямоугольника - x1:y1, координаты нижнего правого угла прямоугольника - x2:y2.

Пример 13. Рисование закрашенного прямоугольника:

<?

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

$im = imagecreatetruecolor(320, 240);

$red = imagecolorallocate($im, 255, 0, 0);

// Закрашенный прямоугольник

imagefilledrectangle($im,80,60,240,180,$red);

imagepng($im);

imagedestroy($im);

?>

Результат работы этой программы выглядит следующим образом:

 

Проблемы при рисовании полупрозрачного прямоугольника

Так как прямоугольник рисуется с помощью четырех линий, которые пересекаются в вершинах, то при использовании прозрачности четыре угловых пикселя становятся более темными. Для решения этой проблемы можно использовать следующую функцию:

Пример 15. Рисование полупрозрачного прямоугольника:

<?php

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

$im = imagecreatetruecolor(320, 240);

$ink = imagecolorallocate($im, 255, 255, 255);

$col = imagecolorallocatealpha($im, 255, 255, 255, 96);

// Функция рисующая "правильный" прямоугольник

function imagetransparentrectanle($im,$x1,$y1,$x2,$y2,$col) {

imageline($im, $x1, $y1, $x2, $y1, $col );

imageline($im, $x1, $y2, $x2, $y2, $col );

imageline($im, $x1, $y1+1, $x1, $y2-1, $col );

imageline($im, $x2, $y1+1, $x2, $y2-1, $col );

}

// "Правильный" прямоугольник

imagetransparentrectanle($im,10,10,100,100,$col);

// Стандартный прямоугольник

imagerectangle($im,110,110,200,200,$col);

imagepng($im);

imagedestroy($im);

?>

Результат работы этой программы выглядит следующим образом:

 

«Пустой» прямоугольник

Если вы хотите нарисовать "пустой" прямоугольник, то можно воспользоваться комбинацией функций imagefilledrectangle и imagefilledrectangle. Первая функция нарисует закрашенный прямоугольник цветом фона, а вторая нарисует рамку цветом чернил.

Пример 16. Рисование "пустого" прямоугольника:

<?

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

$im = imagecreatetruecolor(320, 240);

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

$ink = imagecolorallocate($im, 255, 255, 255);

$gray = imagecolorallocate($im, 128, 128, 128);

// Нарисуем 100 случайных линий

for ($i=0;$i<100;$i++) {

$x1=rand(0,319);

$x2=rand(0,319);

$y1=rand(0,239);

$y2=rand(0,239);

imageline($im,$x1,$x2,$y1,$y2,$gray);

}

// Сотрем внутреннюю часть прямоугольника

imagefilledrectangle($im,80,60,240,180,$black);

// Нарисуем рамку

imagerectangle($im,80,60,240,180,$ink);

imagepng($im);

imagedestroy($im);

?>

Результат работы этой программы выглядит следующим образом:

 

Прямоугольник с закругленными краями

Стандартной функции для вывода такого прямоугольника нет, но можно воспользоваться следующей:

Пример 17. Функция вывода прямоугольника с закругленными краями:

function ImageRectangleWithRoundedCorners(&$im, $x1, $y1, $x2, $y2, $r, $color) {

// рисуем два прямоугольника без углов

imagefilledrectangle($im, $x1+$r, $y1, $x2-$r, $y2, $color);

imagefilledrectangle($im, $x1, $y1+$r, $x2, $y2-$r, $color);

// рисуем круги в углах

imagefilledellipse($im, $x1+$r, $y1+$r, $r*2, $r*2, $color);

imagefilledellipse($im, $x2-$r, $y1+$r, $r*2, $r*2, $color);

imagefilledellipse($im, $x1+$r, $y2-$r, $r*2, $r*2, $color);

imagefilledellipse($im, $x2-$r, $y2-$r, $r*2, $r*2, $color);

}

Результат работы этой функции выглядит следующим образом:




mike http://mike.nov.ru/
Состояние воздуха:
Мониторинг загрязнения атмосферы в режиме реального времени
© 2004-2017 LABDESIGN.RU   e-mail: