diff --git a/src/Drivers/Gd/Modifiers/DrawEllipseModifier.php b/src/Drivers/Gd/Modifiers/DrawEllipseModifier.php index d7adef56..c113b91d 100644 --- a/src/Drivers/Gd/Modifiers/DrawEllipseModifier.php +++ b/src/Drivers/Gd/Modifiers/DrawEllipseModifier.php @@ -11,20 +11,20 @@ class DrawEllipseModifier extends AbstractDrawModifier implements ModifierInterf public function apply(ImageInterface $image): ImageInterface { return $image->eachFrame(function ($frame) { - if ($this->drawable()->hasBorder()) { + if ($this->ellipse()->hasBorder()) { // slightly smaller ellipse to keep 1px bordered edges clean - if ($this->drawable()->hasBackgroundColor()) { + if ($this->ellipse()->hasBackgroundColor()) { imagefilledellipse( $frame->getCore(), $this->position->getX(), $this->position->getY(), - $this->drawable()->getWidth() - 1, - $this->drawable()->getHeight() - 1, + $this->ellipse()->getWidth() - 1, + $this->ellipse()->getHeight() - 1, $this->getBackgroundColor()->toInt() ); } - imagesetthickness($frame->getCore(), $this->drawable()->getBorderSize()); + imagesetthickness($frame->getCore(), $this->ellipse()->getBorderSize()); // gd's imageellipse doesn't respect imagesetthickness so i use // imagearc with 359.9 degrees here. @@ -32,8 +32,8 @@ class DrawEllipseModifier extends AbstractDrawModifier implements ModifierInterf $frame->getCore(), $this->position->getX(), $this->position->getY(), - $this->drawable()->getWidth(), - $this->drawable()->getHeight(), + $this->ellipse()->getWidth(), + $this->ellipse()->getHeight(), 0, 359.99, $this->getBorderColor()->toInt() @@ -43,8 +43,8 @@ class DrawEllipseModifier extends AbstractDrawModifier implements ModifierInterf $frame->getCore(), $this->position->getX(), $this->position->getY(), - $this->drawable()->getWidth(), - $this->drawable()->getHeight(), + $this->ellipse()->getWidth(), + $this->ellipse()->getHeight(), $this->getBackgroundColor()->toInt() ); } diff --git a/src/Drivers/Gd/Modifiers/DrawLineModifier.php b/src/Drivers/Gd/Modifiers/DrawLineModifier.php index adcc455b..677d6345 100644 --- a/src/Drivers/Gd/Modifiers/DrawLineModifier.php +++ b/src/Drivers/Gd/Modifiers/DrawLineModifier.php @@ -3,9 +3,6 @@ namespace Intervention\Image\Drivers\Gd\Modifiers; use Intervention\Image\Drivers\Abstract\Modifiers\AbstractDrawModifier; -use Intervention\Image\Exceptions\GeometryException; -use Intervention\Image\Geometry\Line; -use Intervention\Image\Interfaces\DrawableInterface; use Intervention\Image\Interfaces\ImageInterface; use Intervention\Image\Interfaces\ModifierInterface; @@ -16,24 +13,12 @@ class DrawLineModifier extends AbstractDrawModifier implements ModifierInterface return $image->eachFrame(function ($frame) { imageline( $frame->getCore(), - $this->drawable()->getStart()->getX(), - $this->drawable()->getStart()->getY(), - $this->drawable()->getEnd()->getX(), - $this->drawable()->getEnd()->getY(), + $this->line()->getStart()->getX(), + $this->line()->getStart()->getY(), + $this->line()->getEnd()->getX(), + $this->line()->getEnd()->getY(), $this->getBackgroundColor()->toInt() ); }); } - - public function drawable(): DrawableInterface - { - $drawable = parent::drawable(); - if (!is_a($drawable, Line::class)) { - throw new GeometryException( - 'Shape mismatch. Excepted Line::class, found ' . get_class($drawable) - ); - } - - return $drawable; - } } diff --git a/src/Drivers/Gd/Modifiers/DrawRectangleModifier.php b/src/Drivers/Gd/Modifiers/DrawRectangleModifier.php index a12c252f..1b5e39dc 100644 --- a/src/Drivers/Gd/Modifiers/DrawRectangleModifier.php +++ b/src/Drivers/Gd/Modifiers/DrawRectangleModifier.php @@ -12,26 +12,26 @@ class DrawRectangleModifier extends AbstractDrawModifier implements ModifierInte { $image->eachFrame(function ($frame) { // draw background - if ($this->drawable()->hasBackgroundColor()) { + if ($this->rectangle()->hasBackgroundColor()) { imagefilledrectangle( $frame->getCore(), $this->position->getX(), $this->position->getY(), - $this->position->getX() + $this->drawable()->bottomRightPoint()->getX(), - $this->position->getY() + $this->drawable()->bottomRightPoint()->getY(), + $this->position->getX() + $this->rectangle()->bottomRightPoint()->getX(), + $this->position->getY() + $this->rectangle()->bottomRightPoint()->getY(), $this->getBackgroundColor()->toInt() ); } - if ($this->drawable()->hasBorder()) { + if ($this->rectangle()->hasBorder()) { // draw border - imagesetthickness($frame->getCore(), $this->drawable()->getBorderSize()); + imagesetthickness($frame->getCore(), $this->rectangle()->getBorderSize()); imagerectangle( $frame->getCore(), $this->position->getX(), $this->position->getY(), - $this->position->getX() + $this->drawable()->bottomRightPoint()->getX(), - $this->position->getY() + $this->drawable()->bottomRightPoint()->getY(), + $this->position->getX() + $this->rectangle()->bottomRightPoint()->getX(), + $this->position->getY() + $this->rectangle()->bottomRightPoint()->getY(), $this->getBorderColor()->toInt() ); } diff --git a/src/Drivers/Imagick/Modifiers/DrawEllipseModifier.php b/src/Drivers/Imagick/Modifiers/DrawEllipseModifier.php index 075842ea..b0ef639d 100644 --- a/src/Drivers/Imagick/Modifiers/DrawEllipseModifier.php +++ b/src/Drivers/Imagick/Modifiers/DrawEllipseModifier.php @@ -18,16 +18,16 @@ class DrawEllipseModifier extends AbstractDrawModifier implements ModifierInterf $drawing = new ImagickDraw(); $drawing->setFillColor($this->getBackgroundColor()->getPixel()); - if ($this->drawable()->hasBorder()) { - $drawing->setStrokeWidth($this->drawable()->getBorderSize()); + if ($this->ellipse()->hasBorder()) { + $drawing->setStrokeWidth($this->ellipse()->getBorderSize()); $drawing->setStrokeColor($this->getBorderColor()->getPixel()); } $drawing->ellipse( $this->position->getX(), $this->position->getY(), - $this->drawable()->getWidth() / 2, - $this->drawable()->getHeight() / 2, + $this->ellipse()->getWidth() / 2, + $this->ellipse()->getHeight() / 2, 0, 360 ); diff --git a/src/Drivers/Imagick/Modifiers/DrawLineModifier.php b/src/Drivers/Imagick/Modifiers/DrawLineModifier.php index 6c224a55..0cd6fcd8 100644 --- a/src/Drivers/Imagick/Modifiers/DrawLineModifier.php +++ b/src/Drivers/Imagick/Modifiers/DrawLineModifier.php @@ -4,9 +4,6 @@ namespace Intervention\Image\Drivers\Imagick\Modifiers; use ImagickDraw; use Intervention\Image\Drivers\Abstract\Modifiers\AbstractDrawModifier; -use Intervention\Image\Exceptions\GeometryException; -use Intervention\Image\Geometry\Line; -use Intervention\Image\Interfaces\DrawableInterface; use Intervention\Image\Interfaces\ImageInterface; use Intervention\Image\Interfaces\ModifierInterface; @@ -16,27 +13,16 @@ class DrawLineModifier extends AbstractDrawModifier implements ModifierInterface { $drawing = new ImagickDraw(); $drawing->setStrokeColor($this->getBackgroundColor()->getPixel()); - $drawing->setStrokeWidth($this->drawable()->getWidth()); + $drawing->setStrokeWidth($this->line()->getWidth()); $drawing->line( - $this->drawable()->getStart()->getX(), - $this->drawable()->getStart()->getY(), - $this->drawable()->getEnd()->getX(), - $this->drawable()->getEnd()->getY(), + $this->line()->getStart()->getX(), + $this->line()->getStart()->getY(), + $this->line()->getEnd()->getX(), + $this->line()->getEnd()->getY(), ); + return $image->eachFrame(function ($frame) use ($drawing) { $frame->getCore()->drawImage($drawing); }); } - - public function drawable(): DrawableInterface - { - $drawable = parent::drawable(); - if (!is_a($drawable, Line::class)) { - throw new GeometryException( - 'Shape mismatch. Excepted Line::class, found ' . get_class($drawable) - ); - } - - return $drawable; - } } diff --git a/src/Drivers/Imagick/Modifiers/DrawRectangleModifier.php b/src/Drivers/Imagick/Modifiers/DrawRectangleModifier.php index f16bdb5a..330f7874 100644 --- a/src/Drivers/Imagick/Modifiers/DrawRectangleModifier.php +++ b/src/Drivers/Imagick/Modifiers/DrawRectangleModifier.php @@ -17,17 +17,17 @@ class DrawRectangleModifier extends AbstractDrawModifier implements ModifierInte // setup rectangle $drawing = new ImagickDraw(); $drawing->setFillColor($this->getBackgroundColor()->getPixel()); - if ($this->drawable()->hasBorder()) { + if ($this->rectangle()->hasBorder()) { $drawing->setStrokeColor($this->getBorderColor()->getPixel()); - $drawing->setStrokeWidth($this->drawable()->getBorderSize()); + $drawing->setStrokeWidth($this->rectangle()->getBorderSize()); } // build rectangle $drawing->rectangle( $this->position->getX(), $this->position->getY(), - $this->position->getX() + $this->drawable()->bottomRightPoint()->getX(), - $this->position->getY() + $this->drawable()->bottomRightPoint()->getY() + $this->position->getX() + $this->rectangle()->bottomRightPoint()->getX(), + $this->position->getY() + $this->rectangle()->bottomRightPoint()->getY() ); $image->eachFrame(function ($frame) use ($drawing) {