CircleCommand.php 955 B

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