imageline

(PHP 4, PHP 5, PHP 7, PHP 8)

imagelineZeichnet eine Linie

Beschreibung

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

Zeichnet eine Linie zwischen den beiden gegebenen Punkten.

Parameter-Liste

image

Ein GdImage-Objekt, das von einer der Funktionen zur Bilderzeugung, z. B. imagecreatetruecolor(), zurückgegeben wurde.

x1

x-Koordinate des ersten Punkts.

y1

y-Koordinate des ersten Punkts.

x2

x-Koordinate des zweiten Punkts.

y2

y-Koordinate des zweiten Punkts.

color

Die Linienfarbe. Eine Farbkennung, die mit imagecolorallocate() erzeugt wurde.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Changelog

VersionBeschreibung
8.0.0image erwartet nun eine GdImage-Instanz; vorher wurde eine gültige gd-Ressource erwartet.

Beispiele

Beispiel #1 Zeichnen einer dicken Linie

<?php

function imagelinethick($image, $x1, $y1, $x2, $y2, $color, $thick = 1)
{

if ($thick == 1) {
return
imageline($image, $x1, $y1, $x2, $y2, $color);
}
$t = $thick / 2 - 0.5;
if (
$x1 == $x2 || $y1 == $y2) {
return
imagefilledrectangle($image, round(min($x1, $x2) - $t), round(min($y1, $y2) - $t), round(max($x1, $x2) + $t), round(max($y1, $y2) + $t), $color);
}
$k = ($y2 - $y1) / ($x2 - $x1); //y = kx + q
$a = $t / sqrt(1 + pow($k, 2));
$points = array(
round($x1 - (1+$k)*$a), round($y1 + (1-$k)*$a),
round($x1 - (1-$k)*$a), round($y1 - (1+$k)*$a),
round($x2 + (1+$k)*$a), round($y2 - (1-$k)*$a),
round($x2 + (1-$k)*$a), round($y2 + (1+$k)*$a),
);
imagefilledpolygon($image, $points, 4, $color);
return
imagepolygon($image, $points, 4, $color);
}

?>

Siehe auch

To Top