• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ImagickDraw::polyline

    (PECL imagick 2.0.0)

    绘制多段线

    说明

    ImagickDraw::polyline (array $coordinates) : bool
    Warning

    本函数还未编写文档,仅有参数列表。

    Draws a polyline using the current stroke, stroke width, and fill color or texture, using the specified array of coordinates.

    参数

    $coordinates

    array of x and y coordinates: array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) )

    返回值

    成功时返回 TRUE

    范例

    Example #1 ImagickDraw::polyline()

    <?php
    function polyline($strokeColor, $fillColor, $backgroundColor) {
        $draw = new \ImagickDraw();
        $draw->setStrokeOpacity(1);
        $draw->setStrokeColor($strokeColor);
        $draw->setFillColor($fillColor);
        $draw->setStrokeWidth(5);
        $points = [
            ['x' => 40 * 5, 'y' => 10 * 5],
            ['x' => 20 * 5, 'y' => 20 * 5],
            ['x' => 70 * 5, 'y' => 50 * 5],
            ['x' => 60 * 5, 'y' => 15 * 5]
        ];
        $draw->polyline($points);
        $image = new \Imagick();
        $image->newImage(500, 300, $backgroundColor);
        $image->setImageFormat("png");
        $image->drawImage($draw);
        header("Content-Type: image/png");
        echo $image->getImageBlob();
    }
    ?>
    
    draw a filled Isosceles Triangle
    <?php
    $width = 601;
    $height = 601;
    $max_x = $width - 1;
    $max_y = $height - 1;
    $mid_y = $max_y / 2;
    $mid_x = $max_x / 2;
    $fillcolor = '#F00F00';
    try {
        $lo_img = new Imagick();
        $lo_img->newImage( $width, $height, new ImagickPixel('transparent'));
        
        $draw = new ImagickDraw();
        
        $draw->setFillColor($fillcolor);
        $draw->setStrokeWidth( 1 );
        
        
                  //start point         //end point  
        $co_ords = array( array( 'x' => $mid_x, 'y' => 0 ),array('x'=>0,'y'=>$max_y)
            ,array( 'x' => 0, 'y' => $max_y ),array('x'=>$max_x,'y'=>$max_y)
             ,array( 'x' => $mid_x, 'y' => 0 ),array('x'=>$max_x,'y'=>$max_y)
            );
        
        
        
        $draw->polyline($co_ords);
        $lo_img->drawImage( $draw );
        
        $lo_img->setImageFormat( "png" );
        
        
        header( "Content-Type: image/png" );
        echo $lo_img;
        
        $lo_img->destroy();
        $draw->destroy();
        exit;
        
      } catch (Exception $ex) {
        print_r($ex);
        return;
      }
    ?>