Image Processing for the File Storage Library.
Built on top of Intervention Image v3.
- Manipulates images and produces variants of the original image and stores them
- Supports multiple image operations: resize, scale, crop, rotate, flip, sharpen, and more
- Optimizes image file size using spatie/image-optimizer
- Works with League Flysystem for flexible storage backends
- Fluent API for chaining image operations
- PHP 8.1 or higher
- GD or Imagick extension
- Intervention Image v3
composer require php-collective/file-storage-image-processoruse PhpCollective\Infrastructure\Storage\Processor\Image\ImageVariantCollection;
$collection = ImageVariantCollection::create();
// Create a thumbnail with aspect ratio preserved
$collection->addNew('thumbnail')
->scale(300, 300)
->optimize();
// Create a specific-sized avatar
$collection->addNew('avatar')
->cover(150, 150)
->optimize();
$file = $file->withVariants($collection->toArray());
$file = $imageProcessor->process($file);Please start by reading the documentation in the docs/ directory:
- Installation & Setup
- Processing Images
- Available Operations - Complete reference of all image operations
This package uses Intervention Image v3, which has breaking changes from v2:
ImageManagernow requires a Driver instance instead of array configuration- The
resize()method no longer has anaspectRatioparameter - Use
scale()for aspect ratio preservation (recommended for most cases) - Use
resize()only when you need exact dimensions (may distort image)
See the Available Operations documentation for detailed examples.