Image Conversion in Laravel

 If you want to resize Image on Laravel Website. 


There is laravel vendor    laravel-medialibrary    

This vendor can resize your image into a new size. here it is 


$this->addMediaConversion('main')->width(800);

$this->addMediaConversion('front')->width(500);


This will converte   800width of your current image size 

app\images.php

<?php


namespace App;


use Illuminate\Database\Eloquent\Model;

use Illuminate\Database\Eloquent\SoftDeletes;

use Spatie\MediaLibrary\HasMedia\HasMedia;

use Spatie\MediaLibrary\HasMedia\HasMediaTrait;

use Spatie\MediaLibrary\Models\Media;


class Image extends Model implements HasMedia

{

    use SoftDeletes, HasMediaTrait;


    public $table = 'images';


    protected $appends = [

        'photo',

    ];


    public static $searchable = [

        'name',

        'photo',

    ];


    protected $dates = [

        'created_at',

        'updated_at',

        'deleted_at',

    ];


    protected $fillable = [

        'name',

        'created_at',

        'updated_at',

        'deleted_at',

    ];


    public function registerMediaConversions(Media $media = null)

    {

        $this->addMediaConversion('thumb')->width(200)->height(200);

$this->addMediaConversion('main')->width(800);

$this->addMediaConversion('front')->width(500);

    }


    public function getPhotoAttribute()

    {

        $files = $this->getMedia('photo');

        $files->each(function ($item) {

            $item->url       = $item->getUrl();

            $item->thumbnail = $item->getUrl('thumb');

        });


        return $files;

    }

}


No comments:

Post a Comment

Pages