Signatur
Beschreibung
imageellipse() zeichnet den Umriss einer Ellipse auf das angegebene GD-Bildobjekt. Der Mittelpunkt der Ellipse wird durch $centerX und $centerY festgelegt; Breite und Höhe definieren die Ausdehnung der Ellipse entlang der horizontalen bzw. vertikalen Achse.
Ein Kreis ist ein Sonderfall einer Ellipse, bei dem Breite und Höhe identisch sind. Die Funktion füllt die Ellipse nicht aus – für eine gefüllte Ellipse steht imagefilledellipse() zur Verfügung.
Die Farbe muss zuvor mit imagecolorallocate() oder imagecolorallocatealpha() erstellt worden sein. Das Zeichnen erfolgt direkt im Speicher; um das Ergebnis zu speichern oder auszugeben, sind anschließend Funktionen wie imagepng(), imagejpeg() oder ähnliche notwendig.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $image Pflicht | GdImage | Das Bildobjekt, auf dem gezeichnet wird. Wird typischerweise von imagecreatetruecolor() oder imagecreate() zurückgegeben. |
|
| $centerX Pflicht | int | X-Koordinate des Mittelpunkts der Ellipse in Pixeln. | |
| $centerY Pflicht | int | Y-Koordinate des Mittelpunkts der Ellipse in Pixeln. | |
| $width Pflicht | int | Breite der Ellipse in Pixeln (horizontaler Durchmesser). | |
| $height Pflicht | int | Höhe der Ellipse in Pixeln (vertikaler Durchmesser). | |
| $color Pflicht | int | Farbe des Ellipsenumrisses, erstellt mit imagecolorallocate() oder imagecolorallocatealpha(). |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. wenn das Bild ungültig ist).Beispiele
Einfache Ellipse auf weißem Hintergrund zeichnen
<?php
// Bild erstellen
$image = imagecreatetruecolor(300, 200);
// Farben definieren
$white = imagecolorallocate($image, 255, 255, 255);
$red = imagecolorallocate($image, 255, 0, 0);
// Hintergrund weiß füllen
imagefilledrectangle($image, 0, 0, 299, 199, $white);
// Ellipse in Rot zeichnen (Mittelpunkt 150/100, Breite 200, Höhe 120)
imageellipse($image, 150, 100, 200, 120, $red);
// Als PNG ausgeben
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
Kreis als Sonderfall einer Ellipse
<?php
// 200x200 Bild erstellen
$image = imagecreatetruecolor(200, 200);
$black = imagecolorallocate($image, 0, 0, 0);
$blue = imagecolorallocate($image, 0, 100, 200);
// Hintergrund schwarz füllen
imagefilledrectangle($image, 0, 0, 199, 199, $black);
// Kreis: Breite == Höhe
imageellipse($image, 100, 100, 150, 150, $blue);
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
// Wichtig · Fallstricke
Hinweis: Seit PHP 8.0 wird ein GdImage-Objekt statt einer Ressource übergeben. Älterer Code, der noch resource-Typen verwendete, muss ggf. angepasst werden.
Um eine gefüllte Ellipse zu zeichnen, sollte imagefilledellipse() verwendet werden. Für eine Ellipse mit spezifischer Linienstärke kann vorab imagesetthickness() aufgerufen werden.
Negative Werte für $width oder $height führen zu undefinierten Ergebnissen und sollten vermieden werden.