imageline

imageline($image, $x1, $y1, $x2, $y2, $color)

Rysuje prostą linię od punktu $x1, $y1 do punktu $x2, $y2. Grubość określa imagesetthickness(), wygładzanie ukośnych linii imageantialias(). Zwraca true.

Parametry

  • $image – obrazek GD.
  • $x1, $y1 – początek; $x2, $y2 – koniec.
  • $color – kolor linii; dla linii przerywanej IMG_COLOR_STYLED ze wzorem z imagesetstyle().

Przykłady

$chart = imagecreatetruecolor(200, 100);
imagefill($chart, 0, 0, imagecolorallocate($chart, 255, 255, 255));
$grey = imagecolorallocate($chart, 150, 150, 150);
// osie wykresu
imageline($chart, 10, 90, 190, 90, $grey);
imageline($chart, 10, 10, 10, 90, $grey);
echo dechex(imagecolorat($chart, 100, 90)); // 969696
// przerywana linia pomocnicza: 4 punkty koloru, 4 przezroczyste
$red = imagecolorallocate($chart, 255, 0, 0);
imagesetstyle($chart, array($red, $red, $red, $red, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT, IMG_COLOR_TRANSPARENT));
imageline($chart, 10, 50, 190, 50, IMG_COLOR_STYLED);
echo dechex(imagecolorat($chart, 11, 50)) . " " . dechex(imagecolorat($chart, 15, 50)); // ff0000 ffffff

Na co uważać

  • imageantialias() działa tylko na linie o grubości 1 punktu; grubsze linie są zawsze postrzępione.
  • Do łamanych z wieloma punktami (wykres liniowy) prostsze jest imageopenpolygon() (od PHP 7.2).

Powiązane funkcje:
imagerectangle()
imagefilledrectangle()
imagecolorallocate()
imagecreatetruecolor()