dev-master
9999999-devImage manipulation bundle for Laravel 4
MIT
The Requires
- php >=5.4.0
- illuminate/support 4.2.*
- orchestra/imagine *
by Todor Todorov
Image manipulation bundle for Laravel 4
You can install this package in the standart way. Add:, (*1)
"todsto/image-crop-resizer": "dev-master"
to your composer.json
.
Run composer update
Publish the configuration, (*2)
php artisan config:publish todsto/image-crop-resizer
Open your app/config/app.php
and add 'Todsto\ImageCropResizer\ImageCropResizerServiceProvider',
to the providers array. Then add 'ICR' => 'Todsto\ImageCropResizer\ImageCropResizer'
to the aliases array. This will register 'ICR' as alias for the base bundle class., (*3)
The bundle stores the images in the public/uploads/context/size
folder., (*4)
To set the your own contexts use the app/config/packages/todsto/image-crop-resizer/contexts.php
.
The file looks like this, (*5)
return [ 'default' => [ 'small' => [ 'width' => 100, 'height' => 100, 'action' => 'crop-resize' ], 'medium' => [ 'width' => 200, 'height' => 200, 'action' => 'crop-resize' ], 'large' => [ 'width' => 300, 'height' => 300, 'action' => 'crop-resize' ] ] ];
"default" is the default image context. Context has different sizes which has width, height and action. The action defines the way that the image will be processed. "crop" crops a region with the provided measures from the middle of the image. "resize" resize the image to given measures. "crop-resize" crops a region from the image, but first resize it, so the image will be cropped with no deformations and with minimal losses., (*6)
To use the bundle just call in you controller the process method of the ImageCropResizer class. As you have an alias, your code might look like this:, (*7)
class TestController extends Controller { public function getTest() { return View::make('test'); } public function postTest() { $image_name = ICR::process(Input::file('image'), 'default'); // Some database actions here return Redirect::back()->with('message', 'Success'); } }
In the template:, (*8)
@if(Session::has('message')) {{ Session::get('message') }} @endif {{ Form::open(['url' => 'test/test', 'method' => 'POST', 'enctype' => 'multipart/form-data']) }} {{ Form::token() }} {{ Form::file('image') }} {{ Form::submit('Submit') }} {{ Form::close() }}
The process method takes as first argument the file object from the input field. The second argument is the context. The process method returns the generated unique image name., (*9)
Image manipulation bundle for Laravel 4
MIT