관리-도구
편집 파일: PolygonCommand.php
<?php namespace Intervention\Image\Commands; use Closure; use Intervention\Image\Exception\InvalidArgumentException; class PolygonCommand extends AbstractCommand { /** * Draw a polygon on given image * * @param \Intervention\Image\image $image * @return boolean */ public function execute($image) { $points = $this->argument(0)->type('array')->required()->value(); $callback = $this->argument(1)->type('closure')->value(); $vertices_count = count($points); // check if number if coordinates is even if ($vertices_count % 2 !== 0) { throw new InvalidArgumentException( "The number of given polygon vertices must be even." ); } if ($vertices_count < 6) { throw new InvalidArgumentException( "You must have at least 3 points in your array." ); } $polygon_classname = sprintf('\Intervention\Image\%s\Shapes\PolygonShape', $image->getDriver()->getDriverName()); $polygon = new $polygon_classname($points); if ($callback instanceof Closure) { $callback($polygon); } $polygon->applyToImage($image); return true; } }