15.1. Drawing Lines, Rectangles, and Polygons
Problem
You want to draw a line, rectangle, or polygon. You also want to be able to control if the rectangle or polygon is open or filled in. For example, you want to be able to draw bar charts or create graphs of stock quotes.
Solution
To draw a
line, use
ImageLine( )
:
ImageLine($image, $x1, $y1, $x2, $y2, $color);
To draw an open
rectangle, use ImageRectangle( )
:
ImageRectangle($image, $x1, $y1, $x2, $y2, $color);
To draw a solid rectangle, use ImageFilledRectangle( )
:
ImageFilledRectangle($image, $x1, $y1, $x2, $y2, $color);
To draw an open
polygon, use
ImagePolygon( )
:
$points = array($x1, $y1, $x2, $y2, $x3, $y3); ImagePolygon($image, $points, count($points)/2, $color);
To draw a
filled
polygon, use ImageFilledPolygon( )
:
$points = array($x1, $y1, $x2, $y2, $x3, $y3); ImageFilledPolygon($image, $points, count($points)/2, $color);
Discussion
The prototypes for all five functions
in the Solution are similar. The first parameter is the canvas to
draw on. The next set of parameters are the x and y coordinates to
specify where GD should draw the shape. In ImageLine( )
,
the four coordinates are the end points of the line, and in
ImageRectangle( )
, they’re the
opposite corners of the rectangle. For example,
ImageLine($image,
0,
0,
100,
100,
$color)
produces a diagonal line. Passing the same
parameters to ImageRectangle( )
produces a
rectangle with corners at (0,0), (100,0), (0,100), and (100,100).
Both shapes are shown in Figure 15-2 ...
Get PHP Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.