1
0

EllipseCommand.php 1002 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. namespace Intervention\Image\Commands;
  3. use Closure;
  4. class EllipseCommand extends AbstractCommand
  5. {
  6. /**
  7. * Draws ellipse on given image
  8. *
  9. * @param \Intervention\Image\Image $image
  10. * @return boolean
  11. */
  12. public function execute($image)
  13. {
  14. $width = $this->argument(0)->type('numeric')->required()->value();
  15. $height = $this->argument(1)->type('numeric')->required()->value();
  16. $x = $this->argument(2)->type('numeric')->required()->value();
  17. $y = $this->argument(3)->type('numeric')->required()->value();
  18. $callback = $this->argument(4)->type('closure')->value();
  19. $ellipse_classname = sprintf('\Intervention\Image\%s\Shapes\EllipseShape',
  20. $image->getDriver()->getDriverName());
  21. $ellipse = new $ellipse_classname($width, $height);
  22. if ($callback instanceof Closure) {
  23. $callback($ellipse);
  24. }
  25. $ellipse->applyToImage($image, $x, $y);
  26. return true;
  27. }
  28. }