function test_path(&$canvas) { $draw = new ImagickDraw(); $draw->setFillColor('transparent'); $draw->setStrokeColor('blue'); $draw->setStrokeWidth(4); $draw->pathStart(); $draw->pathMoveToAbsolute(300, 10); $draw->pathLineToHorizontalRelative(50); $draw->pathLineToVerticalRelative(50); $draw->pathEllipticArcRelative(40, 30, 30, false, true, 60, 10); $draw->pathLineToAbsolute(444, 22); $draw->pathFinish(); $draw->pathStart(); $draw->pathMoveToAbsolute(480, 30); $draw->pathCurveToAbsolute(520, 40, 560, 10, 600, 20); $draw->pathCurveToQuadraticBezierRelative(30, 10, -60, 80); $draw->pathCurveToQuadraticBezierSmoothRelative(20, -50); $draw->pathClose(); $draw->pathFinish(); $canvas->drawImage($draw); }
function pathCurveToQuadraticBezierAbsolute($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, 250); // This specifies a quadratic bezier curve with the current position as the start // point, the control point is the first two params, and the end point is the last two params. $draw->pathCurveToQuadraticBezierAbsolute(150, 50, 250, 250); // This specifies a quadratic bezier curve with the current position as the start // point, the control point is mirrored from the previous curves control point // and the end point is defined by the x, y values. $draw->pathCurveToQuadraticBezierSmoothAbsolute(450, 250); // This specifies a quadratic bezier curve with the current position as the start // point, the control point is mirrored from the previous curves control point // and the end point is defined relative from the current position by the x, y values. $draw->pathCurveToQuadraticBezierSmoothRelative(200, -100); $draw->pathFinish(); $imagick = new \Imagick(); $imagick->newImage(700, 500, $backgroundColor); $imagick->setImageFormat("png"); $imagick->drawImage($draw); header("Content-Type: image/png"); echo $imagick->getImageBlob(); }