ImagickDraw
PHP Manual

ImagickDraw::setFillRule

(PECL imagick 2.0.0)

ImagickDraw::setFillRule — 多角形の描画時に使用する塗りつぶしルールを設定する

説明

bool ImagickDraw::setFillRule ( int $fill_rule )
警告

この関数は、 現在のところ詳細な情報はありません。引数のリストのみが 記述されています。

多角形の描画時に使用する塗りつぶしルールを設定します。

パラメータ

fill_rule

FILLRULE_ 定数。

返り値

値を返しません。

例

例1 ImagickDraw::setFillRule()

<?php
function setFillRule($fillColor, $strokeColor, $backgroundColor) {

    
$draw = new \ImagickDraw();

    
$draw->setStrokeWidth(1);
    
$draw->setStrokeColor($strokeColor);
    
$draw->setFillColor($fillColor);

    
$fillRules = [\Imagick::FILLRULE_NONZERO, \Imagick::FILLRULE_EVENODD];

    
$points = 11;
    
$size = 150;

    
$draw->translate(175, 160);

    for (
$x = 0; $x < 2; $x++) {
        
$draw->setFillRule($fillRules[$x]);
        
$draw->pathStart();
        for (
$n = 0; $n < $points * 2; $n++) {

            if (
$n >= $points) {
                
$angle = fmod($n * 360 * 4 / $points, 360) * pi() / 180;
            }
            else {
                
$angle = fmod($n * 360 * 3 / $points, 360) * pi() / 180;
            }

            
$positionX = $size * sin($angle);
            
$positionY = $size * cos($angle);

            if (
$n == 0) {
                
$draw->pathMoveToAbsolute($positionX, $positionY);
            }
            else {
                
$draw->pathLineToAbsolute($positionX, $positionY);
            }
        }

        
$draw->pathClose();
        
$draw->pathFinish();

        
$draw->translate(325, 0);
    }

    
$image = new \Imagick();
    
$image->newImage(700, 320, $backgroundColor);
    
$image->setImageFormat("png");
    
$image->drawImage($draw);

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

?>


ImagickDraw
PHP Manual