﻿ imageline

imageline

Draw a line (PHP 4, PHP 5) bool imageline ( resource image, int x1, int y1, int x2, int y2, int color )

imageline() draws a line between the two given points.

Parameters

image

An image resource, returned by one of the image creation functions, such as imagecreatetruecolor().

x1

x-coordinate for first point

y1

y-coordinate for first point

x2

x-coordinate for second point

y2

y-coordinate for second point

color

The line color. A color identifier created with imagecolorallocate()

Return Values

Returns `TRUE` on success or `FALSE` on failure.

Examples

Example 1016. Drawing a thick line

```<?php function imagelinethick(\$image, \$x1, \$y1, \$x2, \$y2, \$color, \$thick = 1) {    /* this way it works well only for orthogonal lines    imagesetthickness(\$image, \$thick);    return imageline(\$image, \$x1, \$y1, \$x2, \$y2, \$color);    */    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); } ?>```

﻿