setupImage(); } protected function setupImage() { if (! isset($this->options['accept'])) { $this->options['accept'] = []; } $this->options['accept']['mimeTypes'] = 'image/*'; $this->options['isImage'] = true; } public function dimensions(array $options) { if (! $options) { return $this; } $this->mergeOptions(['dimensions' => $options]); foreach ($options as $k => &$v) { $v = "$k=$v"; } return $this->rules('dimensions:'.implode(',', $options)); } /** * Set ratio constraint. * * @param float $ratio width/height * @return $this */ public function ratio($ratio) { if ($ratio <= 0) { return $this; } return $this->dimensions(['ratio' => $ratio]); } /** * @param UploadedFile $file */ protected function prepareFile(UploadedFile $file) { $this->callInterventionMethods($file->getRealPath(), $file->getMimeType()); $this->uploadAndDeleteOriginalThumbnail($file); } }