PHP Conference Japan 2024

ImagickDraw::ellipse

(PECL imagick 2, PECL imagick 3)

ImagickDraw::ellipse在影像上繪製橢圓

描述

public ImagickDraw::ellipse(
    float $ox,
    float $oy,
    float $rx,
    float $ry,
    float $start,
    float $end
): bool
警告

此函數目前沒有說明文件;僅提供其參數列表。

在影像上繪製橢圓。

參數

ox

oy

rx

ry

start

end

回傳值

不回傳任何值。

範例

範例 #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();
}

?>

新增註解

使用者貢獻的註解 1 則註解

1
Axeia
15 年前
<?php
/**
* 請注意,如果您使用筆畫。( Imagick::setStrokeWidth( 2 ) ) 筆畫會繪製在橢圓尺寸之外。
*
* @param float $ox - 偏移量 X,從橢圓中心到影像左邊界的距離
* @param float $oy - 偏移量 Y,從橢圓中心到影像頂部的距離
* @param float $rx - X 軸半徑
* @param float $ry - Y 軸半徑
* @param float float $start - 起始角度,以度為單位。
* @param float float $end - 結束角度,以度為單位。
*
*/
ImagickDraw::ellipse( float $ox , float $oy , float $rx , float $ry , float $start , float $end );
?>

繪製完整橢圓(從 0 度到 360 度)並將其輸出為 PNG 的範例。
請注意,與僅支援在非透明背景上的線條進行反鋸齒的 GD 函數不同,此函數預設會進行反鋸齒處理。
<?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' ) );
//從半徑中減去邊框寬度,使其不超出畫面。
$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