Start · Sprachen · PHP · Referenz · imageline

imageline

Funktion

Zeichnet eine Linie zwischen zwei Punkten in einem GD-Bild mit der angegebenen Farbe.

seit PHP 4.0.0 Kategorie: image

Signatur

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

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

Typ
bool
Beschreibung
Gibt 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).