0

我在我的 Laravel 5.2 应用程序中使用干预图像库以及图像缓存插件

我一直在使用预定义的模板,没有这样的问题:

{{ route('imagecache', ['template' => 'medium', 'filename' => 'image.jpg']) }}"

我在文档中看到,除了默认大小小、中和大,您可以创建图像过滤器来创建自定义操作并将它们定义为配置文件中的模板,这样我就可以传递我的模板名称而不是 medium。文档引用图像过滤器作为一种方法来做到这一点,但它对于具体如何做到这一点有点粗略。有谁知道你是怎么做到的?

4

1 回答 1

4

里面config/imagecache.php有一个templates键,在这里你可以添加你自己的。

例如:

'templates' => [
    // ...
   'x-large' => 'App\Filters\ExtraLarge',
   // ...
],

然后你只需要创建类App\Fitlers\ExtraLarge

在方法内部,您可以根据文档applyFilter()调用属性上的任何方法。$image

<?php

namespace App\Filters;

use Intervention\Image\Image;
use Intervention\Image\Filters\FilterInterface;

class ExtraLarge implements FilterInterface
{
    public function applyFilter(Image $image)
    {
        return $image->fit(1300, 1000);
    }
}

然后在route助手内部将模板的值设置为x-large

{{ route('imagecache', ['template' => 'x-large', 'filename' => 'image.jpg']) }}
于 2016-05-23T15:21:50.520 回答