【问题标题】:Prevent generating oversized media in spatie media library防止在 spatie 媒体库中生成过大的媒体
【发布时间】:2020-11-19 16:05:16
【问题描述】:

我正在使用 Spatie 媒体库来管理我的 laravel 应用程序中的媒体。问题是即使上传的文件很小,它也会生成超大的图像,从而导致图像像素化。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Spatie\Image\Manipulations;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
use Spatie\MediaLibrary\MediaCollections\Models\Media; 

class Post extends Model implements HasMedia
{
    use InteractsWithMedia;

    public function registerMediaConversions(Media $media = null) : void
    {
        $this->addMediaConversion('thumb')
            ->width(100);
        $this->addMediaConversion('xs')
            ->width(320);
        $this->addMediaConversion('sm')
            ->width(640);
        $this->addMediaConversion('md')
            ->width(768);
        $this->addMediaConversion('lg')
            ->width(1024);
        $this->addMediaConversion('xl')
            ->width(1280);
    }

    public function registerMediaCollections() : void
    {
        $this->addMediaCollection('images');
    }
}

以上是我的型号代码。假设如果我上传宽度为 700 像素的图像,它还会生成 mdlgxl 图像。

如何防止大于上传图片宽度的媒体转换?

【问题讨论】:

    标签: laravel media-library laravel-medialibrary


    【解决方案1】:

    以下链接给出了这个问题的答案

    Laracast forum

    if ($this->width > 768) {
        $this->addMediaConversion('md')
            ->width(768);
    }
    
    if ($this->width > 1024) {
        $this->addMediaConversion('lg')
            ->width(1024);
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-01
      • 2020-06-14
      • 2022-07-07
      • 2021-07-12
      • 1970-01-01
      • 2018-10-08
      • 2018-09-15
      • 1970-01-01
      相关资源
      最近更新 更多