コード例 #1
0
ファイル: Ellipse.php プロジェクト: kosinix/grafika
 /**
  * @param ImageInterface $image
  * @return ImageInterface
  */
 public function draw($image)
 {
     $strokeColor = new \ImagickPixel($this->getBorderColor()->getHexString());
     $fillColor = new \ImagickPixel($this->getFillColor()->getHexString());
     $draw = new \ImagickDraw();
     $draw->setStrokeColor($strokeColor);
     $draw->setFillColor($fillColor);
     $draw->setStrokeWidth($this->borderSize);
     list($x, $y) = $this->pos;
     $left = $x + $this->width / 2;
     $top = $y + $this->height / 2;
     $draw->ellipse($left, $top, $this->width / 2, $this->height / 2, 0, 360);
     $image->getCore()->drawImage($draw);
     return $image;
 }
コード例 #2
0
ファイル: QuadraticBezier.php プロジェクト: kosinix/grafika
 /**
  * @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
 }
コード例 #3
0
ファイル: QuadraticBezier.php プロジェクト: kosinix/grafika
 /**
  * @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
 }
コード例 #4
0
ファイル: Ellipse.php プロジェクト: kosinix/grafika
 /**
  * TODO: Anti-aliased curves
  * @param ImageInterface $image
  * @return ImageInterface
  */
 public function draw($image)
 {
     list($x, $y) = $this->pos;
     $left = $x + $this->width / 2;
     $top = $y + $this->height / 2;
     if (null !== $this->fillColor) {
         list($r, $g, $b, $alpha) = $this->fillColor->getRgba();
         $fillColorResource = imagecolorallocatealpha($image->getCore(), $r, $g, $b, Editor::gdAlpha($alpha));
         imagefilledellipse($image->getCore(), $left, $top, $this->width, $this->height, $fillColorResource);
     }
     // Create borders. It will be placed on top of the filled ellipse (if present)
     if (0 < $this->getBorderSize() and null !== $this->borderColor) {
         // With border > 0 AND borderColor !== null
         list($r, $g, $b, $alpha) = $this->borderColor->getRgba();
         $borderColorResource = imagecolorallocatealpha($image->getCore(), $r, $g, $b, Editor::gdAlpha($alpha));
         imageellipse($image->getCore(), $left, $top, $this->width, $this->height, $borderColorResource);
     }
     return $image;
 }
コード例 #5
0
ファイル: CubicBezier.php プロジェクト: kosinix/grafika
 /**
  * @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
 }