如何使用 Laravel Varbox 裁剪不同的图像?

问题描述 投票:0回答:1

我在我的 Laravel 项目之一中使用 Varbox。

我有一个名为 Post 的自定义实体。 每个帖子都可以有一个 main_image 和一个 cover_image。

如何使用 Varbox 媒体库为这 2 种图像类型定义不同的样式?

我看到有一个

config/varbox/upload.php
用于定义图像样式,但我想知道是否可以定义单独的样式

laravel image
1个回答
5
投票

确实有一个名为

config/varbox/upload.php
的配置文件,但它充当整个上传功能的通用配置。

要实现您想要的目标,您必须通过实现

Post
特征上存在的
getUploadConfig
方法来自定义配置,特别是针对您的
Varbox\Traits\HasUploads
模型。

以下是供参考的文档部分:https://varbox.io/docs/1.x/file-uploads#specific-model-configurations

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Varbox\Traits\HasUploads;

class Post extends Model
{
    use HasUploads;

    /**
     * Get the specific upload config parts for this model.
     *
     * @return array
     */
    public function getUploadConfig()
    {
        return [
            'images' => [
                'styles' => [
                    'main_image' => [
                        'square' => [
                            'width' => '100',
                            'height' => '100',
                            'ratio' => true,
                        ]
                    ],
                    'cover_image' => [
                        'landscape' => [
                            'width' => '800',
                            'height' => '100',
                            'ratio' => true,
                        ]
                    ],
                ],
            ],
        ];
    }
}

此外,在显示图像时,您可能需要考虑不同的设备分辨率,从而为您的

main_image
cover_image
创建多种样式并相应地显示它们。

© www.soinside.com 2019 - 2024. All rights reserved.