Start · Sprachen · PHP · Referenz · imagefilledrectangle

imagefilledrectangle

Funktion

Zeichnet ein gefülltes Rechteck in ein GD-Bild und füllt es vollständig mit der angegebenen Farbe.

seit PHP 4.0.0 Kategorie: image

Signatur

imagefilledrectangle(GdImage $image, int $x1, int $y1, int $x2, int $y2, int $color): bool

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

Typ
bool
Beschreibung
Gibt 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);
(PNG-Bild mit blauem gefüllten Rechteck auf weißem Hintergrund)

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);
(PNG-Bild: grauer Balken zu 68 % grün gefüllt mit Rahmen)

// 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.