• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • ImagickDraw::ellipse()

    (PECL imagick 2.0.0)

    Draws an ellipse on the image

    说明

    ImagickDraw::ellipse(float $ox,float $oy,float $rx,float $ry,float $start,float $end): bool
    Warning

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

    Draws an ellipse on the image.

    参数

    $ox
    $oy
    $rx
    $ry
    $start
    $end

    返回值

    没有返回值。

    范例

    Example #1 ImagickDraw::ellipse()

    <?php
    function ellipse($strokeColor, $fillColor, $backgroundColor) {
        $draw = new \ImagickDraw();
        $draw->setStrokeColor($strokeColor);
        $draw->setFillColor($fillColor);
        $draw->setStrokeWidth(2);
        $draw->setFontSize(72);
        $draw->ellipse(125, 70, 100, 50, 0, 360);
        $draw->ellipse(350, 70, 100, 50, 0, 315);
        $draw->push();
        $draw->translate(125, 250);
        $draw->rotate(30);
        $draw->ellipse(0, 0, 100, 50, 0, 360);
        $draw->pop();
        $draw->push();
        $draw->translate(350, 250);
        $draw->rotate(30);
        $draw->ellipse(0, 0, 100, 50, 0, 315);
        $draw->pop();
        $imagick = new \Imagick();
        $imagick->newImage(500, 500, $backgroundColor);
        $imagick->setImageFormat("png");
        $imagick->drawImage($draw);
        header("Content-Type: image/png");
        echo $imagick->getImageBlob();
    }
    ?>
    
    <?php
    /**
     * Please note that if you use a stroke. ( Imagick::setStrokeWidth( 2 ) ) the
     * stroke is drawn outside the ellipse dimensions. 
     *
     * @param float $ox - Offset X, distance from the center of the ellipse till the left border of the image
     * @param float $oy - Offset Y, distance from the center of the ellipse till the top of the image
     * @param float $rx - X radius
     * @param float $ry - Y radius
     * @param float float $start - Starting angle in degrees.
     * @param float float $end - End angle in degrees.
     *
     */
    ImagickDraw::ellipse( float $ox , float $oy , float $rx , float $ry , float $start , float $end );
    ?>
    Example of drawing a full ellipse (from 0, 360) and outputting it as a PNG.
    Do note, that this is by default anti-aliased unlike the GD functions which only support it on lines that aren't on a transparent background.
    <?php
    $width = 200;
    $height = 100;
    $border = 2;
    $img = new Imagick();
    $img->newImage( $width, $height, new ImagickPixel( 'transparent' ) );
    $draw = new ImagickDraw();
    $draw->setStrokeColor( new ImagickPixel( 'black' ) );
    $draw->setStrokeWidth( 2 );
    $draw->setFillColor( new ImagickPixel( 'transparent' ) );
    //Substract the border from the radius so it doesn't fall outside the screen.
    $draw->ellipse( $width/2, $height/2, ($width/2)-$border, ($height/2)-$border, 0, 360 );
    $img->drawImage( $draw );
    $img->setImageFormat( "png" );
    header( "Content-Type: image/png" );
    echo $img;
    ?>