Signatur
Beschreibung
imagedashedline() zeichnet eine gestrichelte Linie von Koordinate ($x1, $y1) nach ($x2, $y2) in das angegebene Bild-Objekt. Die Linie besteht aus abwechselnden Ein- und Aus-Segmenten mit jeweils 4 Pixeln Länge.
Die Funktion ist hauptsächlich aus historischen Gründen vorhanden und wird als veraltet betrachtet. Es wird empfohlen, stattdessen imageline() in Kombination mit imagesetstyle() zu verwenden, um flexible, benutzerdefinierte Linienmuster zu erzeugen.
Der $color-Parameter erwartet einen mit imagecolorallocate() oder imagecolorallocatealpha() erzeugten Farbwert. Die Funktion ist nützlich, wenn einfache gestrichelte Linien ohne aufwändige Stilkonfiguration benötigt werden.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $image Pflicht | GdImage | Ein GD-Bild-Objekt, das z. B. durch imagecreatetruecolor() oder imagecreatefromjpeg() erzeugt 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 | Farbe der Linie als Integer, erzeugt mit imagecolorallocate(). |
Rückgabewert
true bei Erfolg zurück, false bei einem Fehler.Beispiele
Einfache gestrichelte Linie zeichnen
<?php
// Bild erstellen
$bild = imagecreatetruecolor(200, 100);
// Hintergrundfarbe (weiß)
$weiss = imagecolorallocate($bild, 255, 255, 255);
imagefill($bild, 0, 0, $weiss);
// Linienfarbe (rot)
$rot = imagecolorallocate($bild, 255, 0, 0);
// Gestrichelte Linie von (10, 50) nach (190, 50) zeichnen
imagedashedline($bild, 10, 50, 190, 50, $rot);
// Bild als PNG ausgeben
header('Content-Type: image/png');
imagepng($bild);
imagedestroy($bild);
Empfohlene Alternative mit imagesetstyle()
<?php
// Bild erstellen
$bild = imagecreatetruecolor(200, 100);
// Farben definieren
$weiss = imagecolorallocate($bild, 255, 255, 255);
$blau = imagecolorallocate($bild, 0, 0, 255);
$trans = IMG_COLOR_TRANSPARENT;
imagefill($bild, 0, 0, $weiss);
// Benutzerdefiniertes Linienmuster: 4 Pixel an, 4 Pixel aus
$stil = [$blau, $blau, $blau, $blau, $trans, $trans, $trans, $trans];
imagesetstyle($bild, $stil);
// Linie mit dem definierten Stil zeichnen
imageline($bild, 10, 50, 190, 50, IMG_COLOR_STYLED);
header('Content-Type: image/png');
imagepng($bild);
imagedestroy($bild);
// Wichtig · Fallstricke
Veraltet: imagedashedline() wird von der offiziellen PHP-Dokumentation als veraltet markiert. Die Funktion bietet keinerlei Konfigurationsmöglichkeit für das Strichmuster. Für flexible Liniengestaltung sollte stattdessen imageline() zusammen mit imagesetstyle() und der Konstante IMG_COLOR_STYLED verwendet werden.
Das feste Muster besteht aus 4 gesetzten und 4 ausgelassenen Pixeln. Bei diagonalen Linien kann das sichtbare Muster variieren.