https://github.com/flipboxstudio/image-controller
Image controller for laravel application
https://github.com/flipboxstudio/image-controller
image-resizer laravel laravel-5-package php
Last synced: about 1 year ago
JSON representation
Image controller for laravel application
- Host: GitHub
- URL: https://github.com/flipboxstudio/image-controller
- Owner: flipboxstudio
- License: mit
- Created: 2016-10-25T16:46:15.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-04-01T19:30:50.000Z (about 9 years ago)
- Last Synced: 2024-05-17T14:57:33.821Z (about 2 years ago)
- Topics: image-resizer, laravel, laravel-5-package, php
- Language: PHP
- Size: 17.6 KB
- Stars: 6
- Watchers: 6
- Forks: 5
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Image Controller
Controller your images for client request with size, quality, and extenstion with easy way. You no longer need to create an image with multiple sizes, this package is already handling request images with size needed,
## Features
* Dynamic images request file
* Controller image size
* Controller image quality
* Controller image extension
* Cache image
## Required
* php >= 5.6.4
* laravel/framework 5.3.*
* intervention/image ^2.3
* intervention/imagecache ^2.3
## Installation
Require this package with composer:
```
composer require flipbox/image-controller
```
Add the ServiceProvider to the providers array in config/app.php
```
Flipbox\ImageController\ImageControllerServiceProvider::class,
```
Add the facade of this package to the $aliases array config/app.php
```
'ImageController' => Flipbox\ImageController\Facade::class
```
Copy the package resource to your application with the publish command:
```
php artisan vendor:publish
```
your image ready to control :-)
## Using package
To avoid clashed request, we suggest you to add a little code to the end of your `.htaccess` file in public laravel folder
```
RewriteRule .*\.(jpg|png|gif|tif|bmp)$ index.php [NC,L]
```
create folder `images` to your public folder (however you can change name of folder in config file), and put image to that folder, for example you put image with file name a `photo.jpg`, and you can access your photo as usual `http://localhost/images/photo.jpg`.
### Request with size
Now you can request image with specify size (`thumbnail`,`small`,`medium`,`large`)
`http://localhost/images/photo.jpg?size=thumbnail` default width 100px
`http://localhost/images/photo.jpg?size=small` default width 240px
`http://localhost/images/photo.jpg?size=medium` default width 500px
`http://localhost/images/photo.jpg?size=large` default width 1024px
### Request with specify width or height
Also you can request image with specify width or height or event both
`http://localhost/images/photo.jpg?width=320` auto height
`http://localhost/images/photo.jpg?height=320` auto width
`http://localhost/images/photo.jpg?width=100&height=320` fixed width and height
### Request with another extension
Real file extension will be ignored, now you can access your images file with extensions that defined in config or even with no extension
`http://localhost/images/photo` valid by default
`http://localhost/images/photo.jpg` valid by default
`http://localhost/images/photo.png` valid by default
`http://localhost/images/photo.gif` valid by default
### Uploaded file
We provide uploader file that make upload file very easy. First parameter is [UploadedFile](https://laravel.com/api/5.2/Illuminate/Http/UploadedFile.html) or [Base64 Encoding](https://en.wikipedia.org/wiki/Base64), and second parameter is `directory/prefix.`
```
ImageController::upload($request->file, 'profile');
```
this method will be return string of generated filename `str_random(34)`
### Model Assesor
Add [model accesor](https://laravel.com/docs/5.2/eloquent-mutators#accessors-and-mutators) to generate image link.
```
/**
* Get ProfilePicture.
*
* @param string $value
* @return string
*/
public function getProfilePictureAttribute($value)
{
return ImageController::generateImageUrl($value, 'small');
}
```
### ToDo
* Add Watermark
* Test