imageopenpolygon()
(PHP 7 >= 7.2.0)
Draws an open polygon
说明
imageopenpolygon(resource $image,array $points,int $num_points,int $color): bool
imageopenpolygon() draws an open polygon on the given$image. Contrary to imagepolygon(), no line is drawn between the last and the first point.
参数
- $image
由图象创建函数(例如imagecreatetruecolor())返回的图象资源。
- $points
An array containing the polygon's vertices, e.g.:
points[0] = x0 points[1] = y0 points[2] = x1 points[3] = y1 - $num_points
Total number of points(vertices), which must be at least 3.
- $color
A color identifier created with imagecolorallocate().
返回值
成功时返回TRUE
,或者在失败时返回FALSE
。
范例
imageopenpolygon() example
<?php // Create a blank image $image = imagecreatetruecolor(400, 300); // Allocate a color for the polygon $col_poly = imagecolorallocate($image, 255, 255, 255); // Draw the polygon imageopenpolygon($image, array( 0, 0, 100, 200, 300, 200 ), 3, $col_poly); // Output the picture to the browser header('Content-type: image/png'); imagepng($image); imagedestroy($image); ?>
以上例程的输出类似于:

参见
imagepolygon()
画一个多边形
In case you want to use an open polygon but are stuck with a PHP version prior to 7.2, a solution may be to 'backplot' your array to its original start. Say you have an array of pixels (below seperated by commas) <?php $arr = array(); for ($i = 0; $i < count($pixels); $i++) { $pixel = explode(',', $pixels[$i]); if (($pixel[0] > 0) && ($pixel[1] > 0)) { $arr[] = $pixel[0]; $arr[] = $pixel[1]; } } imagepolygon($im, $arr, (count($arr) / 2), $otcolor); ?> you can replace this by something like <?php $arr = array(); for ($i = 0; $i < count($pixels); $i++) { $pixel = explode(',', $pixels[$i]); $arr[] = $pixel[0]; $arr[] = $pixel[1]; } // imageopenpolygon($im, $arr, (count($arr) / 2), $otcolor) is not possible, so... for ($i = (count($pixels)-1); $i >= 0; $i--) { $pixel = explode(',', $pixels[$i]); $arr[] = $pixel[0]; $arr[] = $pixel[1]; } imagepolygon($im, $arr, (count($arr) / 2), $otcolor); ?>