Не могли бы вы рассказать, как применить оттенок серого на изображении с помощью LiipImagineBundle
?Как применить оттенки серого на изображении?
NB: Я использую Symfony2
благодарственное,
Не могли бы вы рассказать, как применить оттенок серого на изображении с помощью LiipImagineBundle
?Как применить оттенки серого на изображении?
NB: Я использую Symfony2
благодарственное,
Это работает для меня:
<?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: ~
Существует нет встроенного в оттенках серого фильтра в 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: {}
Вот и все!