ImagickDraw::setFillRule

(PECL imagick 2.0.0)

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

説明

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

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

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

パラメータ

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(175160);

    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 $points360) * pi() / 180;
            }
            else {
                
$angle fmod($n 360 $points360) * 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(3250);
    }

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

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

?>