Signatur
Beschreibung
imageline() zeichnet eine gerade Linie von den Koordinaten ($x1, $y1) bis ($x2, $y2) in das angegebene Bild-Objekt. Die Funktion gehört zur GD-Bibliothek und eignet sich für das programmatische Erzeugen von Grafiken, Diagrammen, Achsen oder Rahmenelementen direkt in PHP.
Die Farbe wird typischerweise mit imagecolorallocate() erstellt und als Integer-Wert übergeben. Alternativ kann eine spezielle Farbe wie IMG_COLOR_STYLED verwendet werden, um eine vorab definierte Linienstil-Farbe (gesetzt mit imagesetstyle()) zu nutzen, oder IMG_COLOR_TILED für Muster.
Für dickere Linien kann imagesetthickness() vor dem Aufruf verwendet werden. Die Funktion arbeitet sowohl mit Palette-Bildern (erstellt durch imagecreate()) als auch mit True-Color-Bildern (imagecreatetruecolor()).
Die Koordinaten werden in Pixeln angegeben, wobei der Ursprung (0, 0) oben links liegt. Werte außerhalb der Bildgrenzen werden ohne Fehler abgeschnitten.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $image Pflicht | GdImage | Ein GD-Bild-Objekt, das z. B. von imagecreatetruecolor() oder imagecreate() zurückgegeben wurde. |
|
| $x1 Pflicht | int | X-Koordinate des Startpunkts der Linie in Pixeln (von links). | |
| $y1 Pflicht | int | Y-Koordinate des Startpunkts der Linie in Pixeln (von oben). | |
| $x2 Pflicht | int | X-Koordinate des Endpunkts der Linie in Pixeln (von links). | |
| $y2 Pflicht | int | Y-Koordinate des Endpunkts der Linie in Pixeln (von oben). | |
| $color Pflicht | int | Farb-Identifier, der mit imagecolorallocate() oder imagecolorallocatealpha() erzeugt wurde. Auch Sonderwerte wie IMG_COLOR_STYLED sind möglich. |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler (z. B. ungültiges Bild-Objekt).Beispiele
Einfache rote Linie auf weißem Hintergrund
<?php
// Bild erstellen (200x100 Pixel)
$image = imagecreatetruecolor(200, 100);
// Farben definieren
$weiss = imagecolorallocate($image, 255, 255, 255);
$rot = imagecolorallocate($image, 255, 0, 0);
// Hintergrund füllen
imagefill($image, 0, 0, $weiss);
// Rote Linie von (10,10) nach (190,90) zeichnen
imageline($image, 10, 10, 190, 90, $rot);
// Bild als PNG ausgeben
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
Gitternetz mit imagesetthickness
<?php
// Bild erstellen (200x200 Pixel)
$image = imagecreatetruecolor(200, 200);
$hintergrund = imagecolorallocate($image, 255, 255, 255);
$grau = imagecolorallocate($image, 200, 200, 200);
$schwarz = imagecolorallocate($image, 0, 0, 0);
imagefill($image, 0, 0, $hintergrund);
// Dünne Gitterlinien alle 20 Pixel
for ($i = 0; $i <= 200; $i += 20) {
imageline($image, $i, 0, $i, 200, $grau); // vertikale Linien
imageline($image, 0, $i, 200, $i, $grau); // horizontale Linien
}
// Dicke Achsenlinien
imagesetthickness($image, 3);
imageline($image, 100, 0, 100, 200, $schwarz); // Y-Achse
imageline($image, 0, 100, 200, 100, $schwarz); // X-Achse
header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
// Wichtig · Fallstricke
Linienstil: Mit imagesetstyle() kann ein benutzerdefinierter Linienstil (z. B. gestrichelt) festgelegt werden. Übergib dann IMG_COLOR_STYLED als Farbe an imageline().
Liniendicke: Die Standarddicke beträgt 1 Pixel. Mit imagesetthickness() lässt sich die Dicke dauerhaft ändern, bis sie wieder zurückgesetzt wird — dies gilt global für alle nachfolgenden Zeichenoperationen auf dem Bild.
Anti-Aliasing: imageline() unterstützt kein natives Anti-Aliasing. Für geglättete Linien kann imageantialias() aktiviert werden (nur bei True-Color-Bildern und ohne Alpha-Transparenz).