unglud / laravel-image by unglued

Basic image saver for Laravel 5
826
13
3
Package Data
Maintainer Username: unglued
Maintainer Contact: unglud@gmail.com (Aleksandr Matrosov)
Package Create Date: 2015-05-01
Package Last Update: 2018-06-28
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-04-22 15:00:53
Package Statistics
Total Downloads: 826
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 13
Total Watchers: 3
Total Forks: 1
Total Open Issues: 0

laravel-image

Basic image saver for Laravel 5.

If you need save uploaded image to some place and to a database, the best way to do that is to save an image in public folder with the unique name and then save that name to the database.

So this package will do it for you.

GitHub release Build Status License Total Downloads

Installation

Laravel Image is distributed as a composer package:

composer require unglud/laravel-image

If you want to change configs later, please publish config file first:

php artisan vendor:publish

Afterward, you can edit the file config/lavaimage.php.

Saving Image

Use LavaImage::save() to save image to public/uploads, this method generate unique 8 char filename and put file to deep tree folder structure.

use Unglued\LavaImage\Facades\LavaImage;

$fileHash = LavaImage::save('http://lorempixel.com/300/300/');

// $fileHash == 203bad62
// and file stored in /public/uploads/2/0/203bad62.jpg

// now you can save hash to file in your storage
$myModel = new MyModel();
$myModel->image = $fileHash;
$myModel->save();

File structure

You can specify another folder structure, like any depth or folder name length in the config file

for 203bad62 it can be
/2/0/203bad62.jpg
/2/0/3/b/203bad62.jpg
/20/203bad62.jpg
/20/3b/203bad62.jpg
etc....

Crop and save

You can specify size as second argument for center fit cropping

LavaImage::save('http://lorempixel.com/300/300/', [100,100]);

As the first argument, you can pass any data, what Intervention/image make method support

// save image from file
LavaImage::save('public/foo.jpg');

// or save image from binary data
LavaImage::save(file_get_contents('public/foo.jpg'));

// save image from gd resource
LavaImage::save(imagecreatefromjpeg('public/foo.jpg'));

// save image directly from an url
LavaImage::save('http://example.com/example.jpg');

// save image directly from Laravel file upload
LavaImage::save(Input::file('photo'));

Any time after saving you can retrieve generated hash by LavaImage::getImageCode()

Getting Image

Then you need to get an image, use hash you know

$hash = '203bad62'
LavaImage::getImage($hash);
// will return http://example.com/uploads/2/0/203bad62.jpg

LavaImage::getImage($hash, true);
// will return absolute path /home/var/laravel/public/uploads/2/0/203bad62.jpg

License

Laravel Image is released under the MIT Licence. See the bundled LICENSE file for details.