Signatur
Beschreibung
imagefilledrectangle() zeichnet ein ausgefülltes Rechteck in das angegebene Bild. Die Position wird durch zwei gegenüberliegende Ecken definiert: die obere linke Ecke (x1/y1) und die untere rechte Ecke (x2/y2). Das gesamte Innere des Rechtecks einschließlich des Rahmens wird mit der angegebenen Farbe gefüllt.
Die Funktion ist ideal für das Zeichnen von Hintergrundflächen, Fortschrittsbalken, Diagrammbalken oder farbigen Markierungen auf dynamisch erzeugten Grafiken. Im Gegensatz zu imagerectangle(), das nur den Umriss zeichnet, füllt diese Funktion das gesamte Rechteck.
Die Koordinaten beziehen sich auf Pixel und beginnen oben links mit (0, 0). Der Farbparameter muss zuvor mit imagecolorallocate() oder imagecolorallocatealpha() erstellt worden sein. Werden x1/y1 und x2/y2 vertauscht, korrigiert PHP die Reihenfolge intern automatisch.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $image Pflicht | GdImage | Ein gültiges GD-Bildobjekt, das z. B. mit imagecreatetruecolor() oder imagecreate() erzeugt wurde. |
|
| $x1 Pflicht | int | X-Koordinate der oberen linken Ecke des Rechtecks in Pixeln. | |
| $y1 Pflicht | int | Y-Koordinate der oberen linken Ecke des Rechtecks in Pixeln. | |
| $x2 Pflicht | int | X-Koordinate der unteren rechten Ecke des Rechtecks in Pixeln. | |
| $y2 Pflicht | int | Y-Koordinate der unteren rechten Ecke des Rechtecks in Pixeln. | |
| $color Pflicht | int | Die Füllfarbe des Rechtecks, erstellt mit imagecolorallocate() oder imagecolorallocatealpha(). Der Sonderwert IMG_COLOR_STYLED verwendet den aktuell gesetzten Stil. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. ungültiges Bildobjekt).Beispiele
Einfaches gefülltes Rechteck auf weißem Hintergrund
<?php
// Bild erstellen (200x100 Pixel)
$bild = imagecreatetruecolor(200, 100);
// Farben definieren
$weiss = imagecolorallocate($bild, 255, 255, 255);
$blau = imagecolorallocate($bild, 30, 100, 220);
// Hintergrund weiß füllen
imagefilledrectangle($bild, 0, 0, 199, 99, $weiss);
// Blaues Rechteck zeichnen
imagefilledrectangle($bild, 20, 15, 180, 85, $blau);
// Bild als PNG ausgeben
header('Content-Type: image/png');
imagepng($bild);
imagedestroy($bild);
Dynamischer Fortschrittsbalken als PNG
<?php
// Fortschritt in Prozent
$prozent = 68;
$breite = 300;
$hoehe = 30;
$bild = imagecreatetruecolor($breite, $hoehe);
$grau = imagecolorallocate($bild, 220, 220, 220);
$gruen = imagecolorallocate($bild, 50, 180, 80);
$rahmen = imagecolorallocate($bild, 100, 100, 100);
// Hintergrund (leerer Balken)
imagefilledrectangle($bild, 0, 0, $breite - 1, $hoehe - 1, $grau);
// Gefüllter Fortschrittsanteil
$fuellBreite = (int)(($breite - 2) * $prozent / 100);
imagefilledrectangle($bild, 1, 1, $fuellBreite, $hoehe - 2, $gruen);
// Rahmen
imagerectangle($bild, 0, 0, $breite - 1, $hoehe - 1, $rahmen);
header('Content-Type: image/png');
imagepng($bild);
imagedestroy($bild);
// Wichtig · Fallstricke
Koordinatenreihenfolge: Obwohl PHP die Koordinaten intern korrigiert, wenn x1 > x2 oder y1 > y2, sollte der Code stets die obere linke Ecke als ersten und die untere rechte Ecke als zweiten Punkt übergeben, um die Lesbarkeit zu wahren.
Transparenz: Soll das Rechteck transparent sein, muss mit imagecolorallocatealpha() eine Farbe mit Alpha-Kanal erzeugt und imagealphablending() korrekt gesetzt werden.
GdImage-Typ: Ab PHP 8.0 wird anstelle des früheren resource-Typs das Objekt GdImage verwendet. Code, der auf Ressourcen-Handles prüft (is_resource()), muss entsprechend angepasst werden.