Laravel Image is a package that provides an intuitive interface for image manipulation and processing within your Laravel applications. Built on top of the popular Intervention Image
library, it allows you to easily resize, crop, and perform various transformations on images, making it ideal for tasks such as uploading and handling user-generated images.
Installation
To install the package, you can use Composer:
1 |
composer require intervention/image |
Configuration
- Service Provider: If you’re using Laravel 5.5 or later, the package will automatically register itself. For earlier versions, you may need to add the service provider in the
config/app.php
file:php
123'providers' => [Intervention\Image\ImageServiceProvider::class,],
- Facade: Add the facade to the aliases array in
config/app.php
:php
123'aliases' => ['Image' => Intervention\Image\Facades\Image::class,],
- Publishing Configuration: (Optional) If you want to customize the configuration, you can publish the configuration file:
bash
1php artisan vendor:publish --provider="Intervention\Image\ImageServiceProvider"
Basic Usage
Opening an Image
You can open an image file using the Image
facade:
1 2 3 |
use Image; $image = Image::make('path/to/image.jpg'); |
Image Manipulation
Here are some common manipulations you can perform:
- Resize:
php
1$image->resize(300, 200); - Crop:
php
1$image->crop(100, 100); - Rotate:
php
1$image->rotate(45); - Insert Watermark:
php
1$image->insert('path/to/watermark.png', 'bottom-right', 10, 10); - Apply Filters:
php
1$image->greyscale();
Saving Images
After manipulating an image, you can save it in various formats:
1 2 3 |
$image->save('path/to/new-image.jpg'); // Save as JPG $image->save('path/to/new-image.png'); // Save as PNG $image->save('path/to/new-image.gif'); // Save as GIF |
Example Output
Here’s how you might use Laravel Image in a controller method to process and save an uploaded image:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
use Illuminate\Http\Request; use Image; public function upload(Request $request) { $request->validate([ 'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048', ]); $image = $request->file('image'); // Create a unique name for the image $imageName = time() . '.' . $image->getClientOriginalExtension(); // Process the image $img = Image::make($image->getRealPath()); $img->resize(300, 300); // Resize to 300x300 $img->save(public_path('images/' . $imageName)); // Save the image return back()->with('success', 'Image uploaded successfully'); } |
Conclusion
Laravel Image simplifies image processing in your Laravel applications, providing a clean and user-friendly API to manipulate images easily. Whether you’re resizing, cropping, or adding filters, this package makes it straightforward to handle image-related tasks.