2015-01-01 8 views

ответ

3

Это работает для меня:

<?php 

namespace AppBundle\Imagine\Filter\Loader; 

use Imagine\Filter\Advanced\Grayscale; 
use Imagine\Image\ImageInterface; 
use Liip\ImagineBundle\Imagine\Filter\Loader\LoaderInterface; 

/** 
* Apply a grayscale effect to image. 
*/ 
class GrayscaleFilterLoader implements LoaderInterface 
{ 
    /** 
    * {@inheritdoc} 
    */ 
    public function load(ImageInterface $image, array $options = []) 
    { 
     $filter = new Grayscale(); 

     return $filter->apply($image); 
    } 
} 

Просто определить услугу, как этот:

services: 
    liip_imagine.filter.loader.grayscale: 
     class: AppBundle\Imagine\Filter\Loader\GrayscaleFilterLoader 
     tags: 
      - { name: liip_imagine.filter.loader, loader: grayscale} 

, а затем фильтр:

liip_imagine: 
    filter_sets: 
     grayscale: 
      filters: 
       grayscale: ~ 
0

Существует нет встроенного в оттенках серого фильтра в LiipImagineBundle, так что вы можете создать собственный фильтр погрузчиком на 3 этапа:

1) Сначала вы должны создать класс GrayscaleFilterLoader, он должен реализовать Liip \ ImagineBundle \ Imagine \ Filter \ Loader \ LoaderInterface как любой другой настраиваемый фильтр:

namespace AppBundle\Imagine\Filter\Loader; 

... 

/** 
* Class GrayscaleFilterLoader 
* @package AppBundle\Imagine\Filter\Loader 
*/ 
class GrayscaleFilterLoader implements LoaderInterface 
{ 
    /** 
    * @param ImageInterface $image 
    * @param array $options 
    * @return ImageInterface 
    */ 
    public function load(ImageInterface $image, array $options = []) 
    { 
     $image->effects()->grayscale(); 

     return $image; 
    } 
} 

2) Затем вы должны зарегистрировать его в контейнер службы и добавьте liip_imagine.filter.loader тег к нему, загрузчик тега будет имя фильтра:

#app/config/services.yml 
liip_imagine.filter.loader.grayscale: 
    class: AppBundle\Imagine\Filter\Loader\GrayscaleFilterLoader 
    tags: 
     - { name: liip_imagine.filter.loader, loader: grayscale} 

3) И, наконец, сконфигурируйте набор фильтров с ним:

#app/config/config.yml 
your_filter_set_name: 
    filters: 
     ... 
     grayscale: {} 

Вот и все!

 Смежные вопросы

  • Нет связанных вопросов^_^