Skip to main content

Command Palette

Search for a command to run...

Laravel Resize Image

Published
1 min readView as Markdown

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);
    }
}

More from this blog

Khang Nguyen

119 posts