An image management package for Laravel 4.

v1.0.1 2014-09-05 23:30 UTC

This package is not auto-updated.

Last update: 2024-02-27 00:06:00 UTC


This package provides the ability to conveniently work with uploaded images. It includes an images table and model, and has the ability to provide multiple versions of the same image with different dimensions, generated on demand.


This package relies on the laravel-storage to manage the image files, which supports writing to the local filesystem or the Amazon S3 service.

Installation Via Composer

Add this to you composer.json file, in the require object:

"mmanos/laravel-image": "dev-master"

After that, run composer install to install the package.

Add the service provider to app/config/app.php, within the providers array.

'providers' => array(
	// ...

Add a class alias to app/config/app.php, within the aliases array.

'aliases' => array(
	// ...
	'Image' => 'Mmanos\Image\Image',


Publish the default config file to your application so you can make modifications.

$ php artisan config:publish mmanos/laravel-image

Publish and run the database migrations for this package.

$ php artisan migrate:publish mmanos/laravel-image
$ php artisan migrate

Note: Don't forget to create the writable directory used by the Storage package, if using the local filesystem driver.


Creating Images

Create an image from image data:

$image = Image::put($contents);

Create an image from an uploaded image file:

$image = Image::upload($_FILES['image']);

Create an image from a file on the filesystem:

$image = Image::copy($path);

Create an image from a URL to an image:

$image = Image::copyUrl($url);

Using Images

Get URL to the original image:

$url = $image->url();

Get URL to image constrained to 128px (best fit, maintaining aspect ratio):

$url = $image->url('128');

Get URL to image constrained to 128px in height (maintaining aspect ratio):

$url = $image->url('128h');

Get URL to image constrained to 128px in width (maintaining aspect ratio):

$url = $image->url('128w');

Get URL to image cropped to a 128px square:

$url = $image->url('128s');

Note: You may pass any arbitrary integer value for the image dimension.