PHP | ImagickDraw pathFinish() Function

The ImagickDraw::pathFinish() function is an inbuilt function in PHP which is used to terminate the current path. This is required when multiple paths are to be drawn in the image.
Syntax:
bool ImagickDraw::pathFinish( void )
Parameters: This function doesn’t accepts any parameter.
Return Value: This function returns TRUE on success.
Exceptions: This function throws ImagickException on error.
Below programs illustrate the ImagickDraw::pathFinish() function in PHP:
Program 1:
<?php   // Create a new imagick object $imagick = new Imagick();   // Create a image on imagick object $imagick->newImage(800, 250, '#1a65f0');   // Create a new ImagickDraw object $draw = new ImagickDraw();   $draw->setFillColor('#2fceeb');   // Set the stroke color $draw->setStrokeColor('black');   // Set the stroke width $draw->setStrokeWidth(15);   // Create a path $draw->pathStart(); $draw->pathMoveToAbsolute(50, 50); $draw->pathLineToAbsolute(100, 50); $draw->pathLineToRelative(0, 50); $draw->pathLineToHorizontalRelative(-50); $draw->pathFinish();   // Create another path $draw->pathStart(); $draw->pathMoveToAbsolute(50, 50); $draw->pathMoveToRelative(300, 0); $draw->pathLineToRelative(50, 0); $draw->pathLineToVerticalRelative(50); $draw->pathLineToHorizontalAbsolute(350); $draw->pathclose(); $draw->pathFinish();   // Render the draw commands $imagick->drawImage($draw);   // Show the output $imagick->setImageFormat('png'); header("Content-Type: image/png"); echo $imagick->getImageBlob(); ?> |
Output:
Program 2:
<?php   // Create a new imagick object $imagick = new Imagick();   // Create a image on imagick object $imagick->newImage(800, 250, '#1a65f0');   // Create a new ImagickDraw object $draw = new ImagickDraw();   $draw->setFillColor('red');   // Set the stroke color $draw->setStrokeColor('black');   // Set the stroke width $draw->setStrokeWidth(1);   // Create a path $draw->pathStart(); $draw->pathMoveToAbsolute(50, 50); $draw->pathLineToAbsolute(100, 150); $draw->pathLineToRelative(0, 50); $draw->pathLineToHorizontalRelative(-50); $draw->pathFinish();   $x = 0; for ($x; $x < 10; $x++) {       // Create another path     $draw->pathStart();     $draw->pathMoveToAbsolute(50, 150);     $draw->pathMoveToRelative($x * 100, 0);     $draw->pathLineToRelative(50, 0);     $draw->pathLineToVerticalRelative(50);     $draw->pathLineToHorizontalAbsolute(350);     $draw->pathclose();     $draw->pathFinish(); }   // Render the draw commands $imagick->drawImage($draw);   // Show the output $imagick->setImageFormat('png'); header("Content-Type: image/png"); echo $imagick->getImageBlob(); ?> |
Output:
Reference: https://www.php.net/manual/en/imagickdraw.pathfinish.php




