PHP 8.6.0 Beta 1 is available for testing

ImagickDraw::pathStart

(PECL imagick 2, PECL imagick 3)

ImagickDraw::pathStartDeclares the start of a path drawing list

Description

public function ImagickDraw::pathStart(): bool
Warning

This function is currently not documented; only its argument list is available.

Declares the start of a path drawing list which is terminated by a matching DrawPathFinish() command. All other DrawPath commands must be enclosed between a and a DrawPathFinish() command. This is because path drawing commands are subordinate commands and they do not function by themselves.

Return Values

No value is returned.

Examples

Example #1 ImagickDraw::pathStart() example

<?php
function pathStart($strokeColor, $fillColor, $backgroundColor) {
 $draw = new \ImagickDraw();
 $draw->setStrokeOpacity(1);
 $draw->setStrokeColor($strokeColor);
 $draw->setFillColor($fillColor);
 $draw->setStrokeWidth(2);
 $draw->setFontSize(72);
 $draw->pathStart();
 $draw->pathMoveToAbsolute(50, 50);
 $draw->pathLineToAbsolute(100, 50);
 $draw->pathLineToRelative(0, 50);
 $draw->pathLineToHorizontalRelative(-50);
 $draw->pathFinish();
 $draw->pathStart();
 $draw->pathMoveToAbsolute(50, 50);
 $draw->pathMoveToRelative(300, 0);
 $draw->pathLineToRelative(50, 0);
 $draw->pathLineToVerticalRelative(50);
 $draw->pathLineToHorizontalAbsolute(350);
 $draw->pathclose();
 $draw->pathFinish();
 $draw->pathStart();
 $draw->pathMoveToAbsolute(50, 300);
 $draw->pathCurveToAbsolute(50, 300, 100, 200, 300, 300);
 $draw->pathLineToVerticalAbsolute(350);
 $draw->pathFinish();
 $imagick = new \Imagick();
 $imagick->newImage(500, 500, $backgroundColor);
 $imagick->setImageFormat("png");
 $imagick->drawImage($draw);
 header("Content-Type: image/png");
 echo $imagick->getImageBlob();
}
?>

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 1 note

up
0
v010dya
2 years ago
Between $draw->pathStart() and $draw->pathFinish() you would need to start with $draw->pathMoveToAbsolute(x, y) to initialise the position. All the subsequent calls to "path functions" (including absolute ones) will continue the path.
I would expect pathStart to accept the starting coordinates, and it took me a while to realise that there you need to initialise with a different function.
+add a note

AltStyle によって変換されたページ (->オリジナル) /