Laravel Resize Image
Using Intervention Image
ResizeImageService.php
<?php
namespace App\Services;
use App\Facades\Helper;
use App\Models\Member;
use Illuminate\Support\Facades\Storage;
use Intervention\Image\Facades\Image;
class ResizeImageService
{
/**
* * resize.
*
* @param mixed $file
* @param mixed $width
* @param mixed $height
* @return void
*/
public function resize($file, $width, $height)
{
return Image::make($file)->resize(300, 200)
->encode('jpg');
}
}
AvatarService.php
<?php
namespace App\Services;
use App\Facades\Helper;
use App\Facades\ResizeImageService;
use App\Models\Member;
use Illuminate\Support\Facades\Storage;
use Intervention\Image\Facades\Image;
class AvatarService
{
/**
* * uploadAvatar.
*
* @param mixed $file
* @param mixed $member
* @return void
*/
public function uploadAvatar($file, Member $member)
{
Storage::disk('member-avatar-origin')->makeDirectory($member->date_folder_create);
return Storage::disk('member-avatar-origin')->put($member->date_folder_create, $file);
}
/**
* * resize200x300.
*
* @param mixed $file
* @param mixed $member4
* @return void
*/
public function resize200x300(Member $member)
{
Storage::disk('member-avatar-200x300')->makeDirectory($member->date_folder_create);
$originImg = Storage::disk('member-avatar-origin')->get($member->avatar_path);
$resizePath = Storage::disk('member-avatar-200x300')->path($member->avatar_path);
return ResizeImageService::resize($originImg, 300, 200)->save($resizePath);
}
}