Start · Sprachen · PHP · Referenz · imagerectangle

imagerectangle

Funktion

Zeichnet ein unausgefülltes Rechteck auf ein GD-Bild anhand zweier Eckpunkte.

seit PHP 4.0.0 Kategorie: image

Signatur

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

Beschreibung

imagerectangle() zeichnet den Umriss eines Rechtecks auf das angegebene Bild-Objekt. Die beiden Punkte (x1/y1) und (x2/y2) definieren die diagonalen Eckpunkte des Rechtecks. Das Innere des Rechtecks bleibt transparent bzw. unverändert – nur der Rand wird gezeichnet.

Die Funktion eignet sich für alle Aufgaben, bei denen rechteckige Umrahmungen, Auswahlrahmen oder einfache Diagramm-Elemente auf Bilder gezeichnet werden sollen. Soll das Rechteck ausgefüllt werden, verwendet man stattdessen imagefilledrectangle().

Die Koordinaten werden in Pixeln angegeben und beziehen sich auf den Ursprung oben links (0, 0). Die Reihenfolge der Eckpunkte spielt keine Rolle – PHP normalisiert die Werte intern.

Die Farbe muss vorab mit imagecolorallocate() oder imagecolorallocatealpha() erstellt worden sein. Ab PHP 8.0 wird statt dem alten resource-Typ das GdImage-Objekt verwendet.

Parameter

Name Typ Default Beschreibung
$image Pflicht GdImage Ein gültiges GD-Bild-Objekt, das z. B. mit imagecreatetruecolor() oder imagecreatefromjpeg() erzeugt wurde.
$x1 Pflicht int X-Koordinate (in Pixeln) der oberen linken Ecke des Rechtecks.
$y1 Pflicht int Y-Koordinate (in Pixeln) der oberen linken Ecke des Rechtecks.
$x2 Pflicht int X-Koordinate (in Pixeln) der unteren rechten Ecke des Rechtecks.
$y2 Pflicht int Y-Koordinate (in Pixeln) der unteren rechten Ecke des Rechtecks.
$color Pflicht int Farb-Bezeichner, der zuvor mit imagecolorallocate() oder imagecolorallocatealpha() erzeugt wurde.

Rückgabewert

Typ
bool
Beschreibung
Gibt true bei Erfolg zurück, false bei einem Fehler (z. B. ungültiges Bild-Objekt oder ungültige Farbe).

Beispiele

Einfaches rotes Rechteck auf weißem Hintergrund

<?php
// Bild erstellen (200x150 Pixel)
$image = imagecreatetruecolor(200, 150);

// Farben zuweisen
$white = imagecolorallocate($image, 255, 255, 255);
$red   = imagecolorallocate($image, 255, 0, 0);

// Hintergrund weiß füllen
imagefill($image, 0, 0, $white);

// Rotes Rechteck zeichnen (nur Rahmen)
imagerectangle($image, 20, 20, 180, 130, $red);

// Bild als PNG ausgeben
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
(PNG-Bild mit rotem Rechteck-Rahmen auf weißem Hintergrund)

Mehrere verschachtelte Rechtecke als Rahmen-Effekt

<?php
$image = imagecreatetruecolor(300, 200);

$bg     = imagecolorallocate($image, 240, 240, 240);
$blue   = imagecolorallocate($image, 0, 80, 200);
$green  = imagecolorallocate($image, 0, 180, 80);

imagefill($image, 0, 0, $bg);

// Äußeres Rechteck (blau)
imagerectangle($image, 10, 10, 290, 190, $blue);

// Mittleres Rechteck (grün)
imagerectangle($image, 30, 30, 270, 170, $green);

// Inneres Rechteck (blau)
imagerectangle($image, 50, 50, 250, 150, $blue);

header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
(PNG-Bild mit drei verschachtelten Rechteck-Rahmen)

// Wichtig · Fallstricke

Ausgefülltes Rechteck: Um ein vollständig gefülltes Rechteck zu zeichnen, verwende imagefilledrectangle() anstelle dieser Funktion.

Linienbreite: Die Stärke des gezeichneten Rahmens lässt sich vorab mit imagesetthickness() einstellen. Standardmäßig wird mit einer Linienstärke von 1 Pixel gezeichnet.

PHP 8.0: Ab PHP 8.0 werden GD-Ressourcen als GdImage-Objekte behandelt. Code, der noch auf resource-Typen prüft, sollte aktualisiert werden.