PHP | imagick绘制pathCurveToSmoothRelative()函数
ImagickDraw::pathCurveToSmoothRelative()函数是PHP中的一个内置函数,用于使用相对坐标从当前点到 (x,y) 绘制三次贝塞尔曲线。
句法:
bool ImagickDraw::pathCurveToSmoothRelative( float $x2, float $y2, float $x, float $y )
参数:该函数接受上面提到的四个参数,如下所述:
- $x2:指定第二个控制点的 x 坐标。
- $y2:指定第二个控制点的y坐标。
- $x:它指定结束点的 x 坐标。
- $y:它指定结束点的 y 坐标。
返回值:此函数在成功时返回 TRUE。
异常:此函数在出错时抛出 ImagickException。
下面给出的程序说明了PHP中的ImagickDraw::pathCurveToSmoothRelative()函数:
方案一:
newImage(800, 250, 'skyblue');
// Create a new ImagickDraw object
$draw = new ImagickDraw();
// Set the fill color
$draw->setFillColor('skyblue');
// Set the stroke color
$draw->setStrokeColor('black');
// Set the stroke width
$draw->setStrokeWidth(5);
// Draw a painting
$draw->pathStart();
$draw->pathMoveToRelative(335, 70);
$draw->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw->pathMoveToRelative(50, 50);
$draw->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw->pathMoveToRelative(-500, 0);
$draw->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw->pathCurveToSmoothRelative(50, -50, 60, 20);
$draw->pathFinish();
// Set the fill color
$draw->setFillColor('yellow');
// Draw a circle
$draw->circle(20, 20, 100, 20);
// Set the stroke width
$draw->setStrokeWidth(1);
// Set the fond size
$draw->setFontSize(40);
// Set the fill color
$draw->setFillColor('yellow');
// Annotate the text
$draw->annotation(500, 40, 'Summer Vibes');
// Render the draw commands
$imagick->drawImage($draw);
// Show the output
$imagick->setImageFormat('png');
header("Content-Type: image/png");
echo $imagick->getImageBlob();
?>
输出:
方案二:
newImage(800, 250, 'cyan');
// Create a new ImagickDraw object
$draw = new ImagickDraw();
$draw->setFillColor('purple');
// Set the stroke color
$draw->setStrokeColor('blue');
// Set the stroke width
$draw->setStrokeWidth(15);
// Draw curves to Quadratic Bezier Relative (with pathClose())
$draw->pathStart();
$draw->pathCurveToSmoothRelative(-200, 250, 1900, 1250);
$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();
?>
输出:
参考: https://www. PHP.net/manual/en/imagickdraw.pathcurvetosmoothrelative。 PHP