johntout/laravel-image-sizes

Laravel 图像尺寸包

1.4.2 2024-08-07 08:37 UTC

README

一个用于存储不同尺寸图像的 Laravel 包。还提供了各种视频提供者 URL 的选项。

此包是为一个个人项目创建的,我发布它是为了以防有其他人有同样的需求。干杯 :)

要求

PHP 8+
Laravel 9+

安装

步骤 1: 使用 composer 安装 johntout/laravel-image-sizes

composer require johntout/laravel-image-sizes

该包使用 intervention/image 包进行图像处理。在使用 laravel-image-sizes 包之前,请确保查阅 intervention/image 文档 以了解与 Laravel 的集成。

步骤 2: 发布配置文件

php artisan vendor:publish --tag="laravel-image-sizes-config"

如果您想使用 Twitch 视频提供者将播放器嵌入到您的应用程序中,请将以下内容添加到您的 .env 文件中。

APP_DOMAIN=yourdomain.com

用法

使用属性或 Laravel 属性设置您希望创建图像的磁盘和目录。该包使用 Laravel 的文件系统。图像的不同尺寸在配置文件中定义。

class User extends Model 
{
    use JohnTout\LaravelImageSizes\HasMedia;
    
    public string filesystem_disk = 'avatars';
    
    public string image_field = 'avatar';
    
    // OR
    
    /**
     * @return Attribute
     */
    public function filesystemDisk(): Attribute
    {
        return Attribute::make(
            get: fn () => 'avatars'
        );
    }

    /**
     * @return Attribute
     */
    public function imageField(): Attribute
    {
        return Attribute::make(
            get: fn () => 'avatar'
        );
    }
}
$user = User::query()->find(1);
$user->saveImage($request->file('image'));

您可以使用以下方式获取图像 URL

$user->imageUrl(size: 'originalImage');

注意

该包使用 v2 intervention/image 包。有关图像处理选项的更多信息,请参阅 intervention/image 文档