imagefilledarc
(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
imagefilledarc — Draw a partial arc and fill it
Description
GdImage
$image
,int
$center_x
,int
$center_y
,int
$width
,int
$height
,int
$start_angle
,int
$end_angle
,int
$color
,int
$style
): bool
Draws a partial arc centered at the specified coordinate in the
given image
.
Parameters
-
image
-
A GdImage object, returned by one of the image creation functions, such as imagecreatetruecolor().
-
center_x
-
x-coordinate of the center.
-
center_y
-
y-coordinate of the center.
-
width
-
The arc width.
-
height
-
The arc height.
-
start_angle
-
The arc start angle, in degrees.
-
end_angle
-
The arc end angle, in degrees. 0° is located at the three-o'clock position, and the arc is drawn clockwise.
-
color
-
A color identifier created with imagecolorallocate().
-
style
-
A bitwise OR of the following possibilities:
IMG_ARC_PIE
IMG_ARC_CHORD
IMG_ARC_NOFILL
IMG_ARC_EDGED
IMG_ARC_PIE
andIMG_ARC_CHORD
are mutually exclusive;IMG_ARC_CHORD
just connects the starting and ending angles with a straight line, whileIMG_ARC_PIE
produces a rounded edge.IMG_ARC_NOFILL
indicates that the arc or chord should be outlined, not filled.IMG_ARC_EDGED
, used together withIMG_ARC_NOFILL
, indicates that the beginning and ending angles should be connected to the center - this is a good way to outline (rather than fill) a 'pie slice'.
Return Values
Returns true
on success or false
on failure.
Changelog
Version | Description |
---|---|
8.0.0 |
image expects a GdImage
instance now; previously, a resource was expected.
|
Examples
Example #1 Creating a 3D looking pie
<?php
// create image
$image = imagecreatetruecolor(100, 100);
// allocate some colors
$white = imagecolorallocate($image, 0xFF, 0xFF, 0xFF);
$gray = imagecolorallocate($image, 0xC0, 0xC0, 0xC0);
$darkgray = imagecolorallocate($image, 0x90, 0x90, 0x90);
$navy = imagecolorallocate($image, 0x00, 0x00, 0x80);
$darknavy = imagecolorallocate($image, 0x00, 0x00, 0x50);
$red = imagecolorallocate($image, 0xFF, 0x00, 0x00);
$darkred = imagecolorallocate($image, 0x90, 0x00, 0x00);
// make the 3D effect
for ($i = 60; $i > 50; $i--) {
imagefilledarc($image, 50, $i, 100, 50, 0, 45, $darknavy, IMG_ARC_PIE);
imagefilledarc($image, 50, $i, 100, 50, 45, 75 , $darkgray, IMG_ARC_PIE);
imagefilledarc($image, 50, $i, 100, 50, 75, 360 , $darkred, IMG_ARC_PIE);
}
imagefilledarc($image, 50, 50, 100, 50, 0, 45, $navy, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 45, 75 , $gray, IMG_ARC_PIE);
imagefilledarc($image, 50, 50, 100, 50, 75, 360 , $red, IMG_ARC_PIE);
// flush image
header('Content-type: image/png');
imagepng($image);
imagedestroy($image);
?>
The above example will output something similar to: