imagefilledellipse() fills the complete ellipse using the allocated color.
<?php
$image = imagecreatetruecolor(320, 220);
$background = imagecolorallocate($image, 255, 255, 255);
$purple = imagecolorallocate($image, 125, 70, 180);
imagefilledrectangle($image, 0, 0, 319, 219, $background);
imagefilledellipse($image, 160, 110, 220, 120, $purple);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>Current example first; the original tutorial examples below are retained and cleaned up for continued learning.
<?php
header ("Content-type: image/jpeg");
$width=301;$height=250;
$im = @ImageCreate ($width, $height)
or die ("Cannot Initialize new GD image stream");
ImageColorAllocate($im,255,255,255);
$text_color=ImageColorAllocate($im,255,0,0); // border colour
$fill_color=ImageColorAllocate($im,0,128,255); // fill colour
imagefilledellipse($im,150,125,250,140,$fill_color); // draw ellipse and fill colour
Imagejpeg ($im); // show the filled ellipse
imagedestroy($im); //memory is cleared.
?>

imagefilledellipse($image,$center_x,$center_y,$width,$height,$color)
Returns true or false based on success of failure.
$image | Image created using ImageCreate() or imagecreatetruecolor() |
$center_x | x coordinate of center ( X : Horizontal ) |
$center_y | y coordinate of center ( Y : Vertical ) |
$width | Width of the ellipse |
$height | Height of the ellipse |
$color | Color to fill the ellipse by using imagecolorallocate(). |

<?php
header ("Content-type: image/jpeg");
$width=301;$height=301;
$im = @ImageCreate ($width, $height)
or die ("Cannot Initialize new GD image stream");
ImageColorAllocate($im,255,255,255);
$text_color=ImageColorAllocate($im,255,0,0);
imageellipse($im,150,150,290,290,$text_color); // outer face
imageellipse($im,80,100,50,50,$text_color); // left eye
imageellipse($im,220,100,50,50,$text_color); // right eye
imageellipse($im,150,200,70,10,$text_color); // mouth
$fill_color=ImageColorAllocate($im,0,128,255); // eye ball colour
imagefilledellipse($im,80,100,20,20,$fill_color); // left eye ball
imagefilledellipse($im,220,100,20,20,$fill_color); // right eye ball
Imagejpeg ($im);
imagedestroy($im); //memory is cleared.
?>
By changing the position of eye ball we can create different type of face ( emoji )
$move_left=0; $move_top=-15; | ![]() $move_left=-15; $move_top=0; |
$move_left=-15; // x position is moved right
$move_top=0; // Y position not changed
$fill_color=ImageColorAllocate($im,0,245,255);
imagefilledellipse($im,80-$move_left,100-$move_top,20,20,$fill_color);
imagefilledellipse($im,220-$move_left,100-$move_top,20,20,$fill_color);
Try to create different movement of eye balls and mouth ellipse representing different face expressions ( emoji )

<?php
header ("Content-type: image/jpeg");
$width=601;$height=601;$gap=30;
$im = @ImageCreate ($width, $height)
or die ("Cannot Initialize new GD image stream");
ImageColorAllocate($im,255,255,255);
for($i=0;$i<=$width;$i +=$gap){
$r=rand(1,255);
$g=rand(1,255);
$b=rand(1,255);
$fill_color = ImageColorAllocate ($im, $r, $g,$b);
imagefilledellipse($im,$width/2,$height/2,$width-$i,$height-$i,$fill_color);
}
Imagejpeg ($im);
imagedestroy($im); //memory is cleared.
?>
GD functions GD imagearc() GD imagerectangle()
Author & Instructor at plus2net
I write and maintain practical tutorials on Python, PHP, SQL, JavaScript, HTML, jQuery, and web development at plus2net. The tutorials focus on clear explanations, working examples, and code that readers can test and adapt while learning.