imagerectangle

(PHP 4, PHP 5)

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

Описание

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

imagerectangle() рисует прямоугольник с заданными координатами углов.

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

x1

Верхняя левая x координата.

y1

Верхняя левая y координата 0, 0 - левый верхний угол изображения.

x2

Нижняя правая x координата.

y2

Нижняя правая y координата.

color

Идентификатор цвета, созданный функцией imagecolorallocate().

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования imagerectangle()

<?php
// Создание изображения 200 x 200 
$canvas imagecreatetruecolor(200200);

// Создание цветов
$pink imagecolorallocate($canvas255105180);
$white imagecolorallocate($canvas255255255);
$green imagecolorallocate($canvas13213528);

// Рисование разноцветных прямоугольников
imagerectangle($canvas5050150150$pink);
imagerectangle($canvas4560120100$white);
imagerectangle($canvas10012075160$green);

// Вывод и освобождение памяти
header('Content-Type: image/jpeg');

imagejpeg($canvas);
imagedestroy($canvas);
?>

Результатом выполнения данного примера будет что-то подобное:

Вывод примера: imagerectangle()

Коментарии

If you want an empty rectangle, I mean, just the borders, fill it first with the ImageFilledRectangle function with the background color and then draw it with this function.
2002-12-17 11:21:54
http://php5.kiev.ua/manual/ru/function.imagerectangle.html
Автор:
In addition to Corey's note, this is the kind of code he means. Note that I always draw an outer grid border, so drawing lines will always take 
1 + ceil((rows+cols)/2) actions. For a 20X20 grid, this means 21 actions, a 10X25 grid takes 19 Actions

<?php

function draw_grid(&$img$x0$y0$width$height$cols$rows$color) {
   
//draw outer border
   
imagerectangle($img$x0$y0$x0+$width*$cols$y0+$height*$rows$color);
   
//first draw horizontal
   
$x1 $x0;
   
$x2 $x0 $cols*$width;
    for (
$n=0$n<ceil($rows/2); $n++) {
       
$y1 $y0 2*$n*$height;
       
$y2 $y0 + (2*$n+1)*$height;
       
imagerectangle($img$x1,$y1,$x2,$y2$color);
    }
   
//then draw vertical
   
$y1 $y0;
   
$y2 $y0 $rows*$height;
    for (
$n=0$n<ceil($cols/2); $n++) {
       
$x1 $x0 2*$n*$width;
       
$x2 $x0 + (2*$n+1)*$width;
       
imagerectangle($img$x1,$y1,$x2,$y2$color);
    }
}

//example
$img imagecreatetruecolor(300200);
$red   imagecolorallocate($img255,   0,   0);
draw_grid($img0,0,15,20,20,10,$red);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
have fun ;)
2007-06-27 08:27:43
http://php5.kiev.ua/manual/ru/function.imagerectangle.html
Please pay attention if you want to draw pixel perfect rectangles: Since this function uses absolute values for the second coordinate points (instead of width and height), you might face a logical problem. PHP counts from 0. But a pixel at position 0,0 occupies already a 1x1 space. In the example above you have the following line:

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

If you don't pay attention, you might thing that the difference between the two coordinates is exactly 100 and assume that the drawn rectangle would have the dimension of 100 x 100 pixels too. But it would be 101 x 101, because PHP counts from 0 and imagerectangle() uses absolute coordinates for the second point too. A smaller example: A rectangle with coordinates 0,0 and 5,5 means 0,1,2,3,4,5 which are 6 pixels, not 5.
2015-06-10 12:15:24
http://php5.kiev.ua/manual/ru/function.imagerectangle.html

    Поддержать сайт на родительском проекте КГБ