/** * @param ImageInterface $image * @return Image */ public function draw($image) { // Localize vars $width = $image->getWidth(); $height = $image->getHeight(); $imagick = $image->getCore(); $draw = new \ImagickDraw(); $strokeColor = new \ImagickPixel($this->getColor()->getHexString()); $fillColor = new \ImagickPixel('rgba(0,0,0,0)'); $draw->setStrokeOpacity(1); $draw->setStrokeColor($strokeColor); $draw->setFillColor($fillColor); list($x1, $y1) = $this->point1; list($x2, $y2) = $this->control; list($x3, $y3) = $this->point2; $draw->pathStart(); $draw->pathMoveToAbsolute($x1, $y1); $draw->pathCurveToQuadraticBezierAbsolute($x2, $y2, $x3, $y3); $draw->pathFinish(); // Render the draw commands in the ImagickDraw object $imagick->drawImage($draw); $type = $image->getType(); $file = $image->getImageFile(); return new Image($imagick, $file, $width, $height, $type); // Create new image with updated core }
/** * @link http://members.chello.at/easyfilter/bresenham.pdf * @param ImageInterface $image * @return Image */ public function draw($image) { // Localize vars $width = $image->getWidth(); $height = $image->getHeight(); $gd = $image->getCore(); list($x0, $y0) = $this->point1; list($x1, $y1) = $this->control; list($x2, $y2) = $this->point2; $this->plot($gd, $x0, $y0, $x1, $y1, $x2, $y2); $type = $image->getType(); $file = $image->getImageFile(); return new Image($gd, $file, $width, $height, $type); // Create new image with updated core }
/** * @param ImageInterface $image * @return Image */ public function draw($image) { // Localize vars $width = $image->getWidth(); $height = $image->getHeight(); $imagick = $image->getCore(); $draw = new \ImagickDraw(); $strokeColor = new \ImagickPixel($this->getColor()->getHexString()); $fillColor = new \ImagickPixel('rgba(0,0,0,0)'); $draw->setStrokeOpacity(1); $draw->setStrokeColor($strokeColor); $draw->setFillColor($fillColor); $points = array(array('x' => $this->point1[0], 'y' => $this->point1[1]), array('x' => $this->control1[0], 'y' => $this->control1[1]), array('x' => $this->control2[0], 'y' => $this->control2[1]), array('x' => $this->point2[0], 'y' => $this->point2[1])); $draw->bezier($points); // Render the draw commands in the ImagickDraw object $imagick->drawImage($draw); $type = $image->getType(); $file = $image->getImageFile(); return new Image($imagick, $file, $width, $height, $type); // Create new image with updated core }