tmpPath(); $mimetype = mime_content_type($path); system('imagemin '.escapeshellarg($path).' --plugin=pngquant > '.escapeshellarg($output)); system('mv '.escapeshellarg($output).' '.escapeshellarg($path)); return [ $path => [$path], ]; } public function originalSize(): array { return getimagesize($this->media->root()); } public function shouldGenerateVersions(): bool { return true; } public function start(): void { } public function end(): void { } public function resize(Collection $size, bool $update, callable $callback): void { $extension = $this->media->extension(); $temp = microtime().'.'.$extension; $r = app(ImageManager::class)->make($this->media->root())->fit($size->get('width'), $size->get('height')); app(ImageManager::class) ->canvas($size->get('width'), $size->get('height'))->insert($r, 'center') ->save(Storage::path($temp)); list($destWidth, $destHeight) = getimagesize(Storage::path($temp)); $versionFilename = $this->media->versionsDirPath().'/'.$this->versionFilename($destWidth, $destHeight); if ($update && Storage::exists($versionFilename)) { Storage::delete($temp); return; } $this->moveTo($temp, $versionFilename); call_user_func($callback, $this->media, Storage::path($versionFilename)); } }