Open In App

PHP | ImagickDraw setFillRule() Function

Last Updated : 07 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

The ImagickDraw::setFillRule() function is an inbuilt function in PHP which is used to set the fill rule to use while drawing the polygons.

Syntax:

bool ImagickDraw::setFillRule( int $fill_rule )

Parameters: This function accepts a single parameter $fill_rule which holds an integer value corresponding to one of FILLRULE constants.

List of FILLRULE constants are given below:

  • imagick::FILLRULE_UNDEFINED (0)
  • imagick::FILLRULE_EVENODD (1)
  • imagick::FILLRULE_NONZERO (2)

Return Value: This function returns TRUE on success.

Below programs illustrate the ImagickDraw::setFillRule() function in PHP:

Program 1:




<?php
  
// Create a new ImagickDraw object
$draw = new ImagickDraw();
  
// Set the Fill Rule
$draw->setFillRule(0);
  
// Get the Fill Rule
$fillRule = $draw->getFillRule();
echo $fillRule;
?>


Output:

0 // Which corresponds to imagick::FILLRULE_UNDEFINED.

Program 2:




<?php
  
// Create a new imagick object
$imagick = new Imagick();
  
// Create a image on imagick object
$imagick->newImage(800, 250, 'black');
  
// Create a new ImagickDraw object
$draw = new ImagickDraw();
  
// Set the Fill Color
$draw->setFillColor('white');
  
// Set the Fill Rule
$draw->setFillRule(Imagick::FILLRULE_EVENODD);
  
// Translate the drawing
$draw->translate(40, 50);
  
// Start the path and draw pathlines
$draw->pathStart();
  
for ($x = 0; $x < 22; $x++) {
    if ($x >= 11) {
        $angle = fmod($x * 130, 360) * pi() / 180;
    } else {
        $angle = fmod($x * 98, 360) * pi() / 180;
    }
    $draw->pathLineToAbsolute(150 * sin($angle), 150 * cos($angle));
}
  
// Render the draw commands
$imagick->drawImage($draw);
  
// Show the output
$imagick->setImageFormat('png');
header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>


Output:



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads