Andrew13\Cabinet\CabinetUpload::generateThumbnails PHP Метод

generateThumbnails() публичный Метод

public generateThumbnails ( $folder, $file )
    public function generateThumbnails($folder, $file)
    {
        $folder = static::$app['path.base'] . $folder;
        if (is_string($file)) {
            $file = new UploadedFile($folder . $file, $file);
        }
        $thumbnails = array();
        // Check the image type is valid by extension and mimetype
        if ($this->verifyImageType($file)) {
            $image = Image::make($folder . $file->getClientOriginalName());
            foreach (static::$app['config']->get('cabinet::image_resize') as $image_params) {
                $tempFile = clone $file;
                // Add image manipulation to file name.
                $tempFile->fileSystemName = $this->getBasename($file) . '_' . ($image_params[0] != null ? $image_params[0] : 'auto') . 'x' . ($image_params[1] != null ? $image_params[1] : 'auto') . (isset($image_params[2]) && $image_params[2] == true ? '_ratio' : '') . (isset($image_params[3]) && $image_params[3] == true ? '_upsized' : '') . '.' . $file->getClientOriginalExtension();
                list($folder, $tempFile) = $this->resolveFileName($folder, $tempFile);
                // Have to clone since we'll be doing this multiple times.
                $clonedImage = clone $image;
                if (!isset($image_params[2])) {
                    $image_params[2] = false;
                }
                if (!isset($image_params[3])) {
                    $image_params[3] = true;
                }
                $clonedImage->resize($image_params[0], $image_params[1], function ($constraint) use($image_params) {
                    if ($image_params[2]) {
                        $constraint->aspectRatio();
                    }
                    if ($image_params[3]) {
                        $constraint->upsize();
                    }
                })->save($folder . $tempFile->fileSystemName);
                $thumbnails[] = $tempFile;
                // Image files can be big, free up memory.
                unset($clonedImage);
                unset($tempFile);
            }
        }
        return $thumbnails;
    }