如何创建和使用带有干预图像和 Laravel 5.2 的图像模板

How to create and use image template with intervention image and Laravel 5.2

我正在使用 Intervention Image library in my Laravel 5.2 app along with the Image Cache plugin

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

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

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

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

例如:

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

那么您只需要创建 class App\Fitlers\ExtraLarge.

applyFilter() 方法中,您可以根据 documentation.

调用 $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']) }}