ImagickDraw::ellipse

(PECL imagick 2.0.0)

ImagickDraw::ellipseDraws an ellipse on the image

Opis

ImagickDraw::ellipse ( float $ox , float $oy , float $rx , float $ry , float $start , float $end ) : bool
Ostrzeżenie

Ta funkcja jest obecnie nieudokumentowana, dostępna jest jedynie lista jej argumentów.

Draws an ellipse on the image.

Parametry

ox

oy

rx

ry

start

end

Zwracane wartości

Nie jest zwracana żadna wartość.

Przykłady

Przykład #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(12570100500360);
    
$draw->ellipse(35070100500315);

    
$draw->push();
    
$draw->translate(125250);
    
$draw->rotate(30);
    
$draw->ellipse(00100500360);
    
$draw->pop();

    
$draw->push();
    
$draw->translate(350250);
    
$draw->rotate(30);
    
$draw->ellipse(00100500315);
    
$draw->pop();

    
$imagick = new \Imagick();
    
$imagick->newImage(500500$backgroundColor);
    
$imagick->setImageFormat("png");

    
$imagick->drawImage($draw);

    
header("Content-Type: image/png");
    echo 
$imagick->getImageBlob();
}

?>

add a note add a note

User Contributed Notes 1 note

up
-1
Axeia
15 years ago
<?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;
?>
To Top