Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 带liipImagineBundle的动态滤波器_Image_Symfony_Symfony 2.1_Liipimaginebundle - Fatal编程技术网

Image 带liipImagineBundle的动态滤波器

Image 带liipImagineBundle的动态滤波器,image,symfony,symfony-2.1,liipimaginebundle,Image,Symfony,Symfony 2.1,Liipimaginebundle,我正在使用liipImagineBundle,并试图将过滤器直接应用到控制器中 在文档中,我找到了两个部分,其中解释了如何从控制器使用liipImagineBundle。这个 我按照“将控制器作为服务使用”中的说明进行了测试,它可以正常工作,问题是我不知道如何访问过滤器设置来修改它 liip_imagine: driver: gd web_root: %kernel.root_dir%/../web data_root:

我正在使用liipImagineBundle,并试图将过滤器直接应用到控制器中

在文档中,我找到了两个部分,其中解释了如何从控制器使用liipImagineBundle。这个

我按照“将控制器作为服务使用”中的说明进行了测试,它可以正常工作,问题是我不知道如何访问过滤器设置来修改它

liip_imagine:
driver:               gd
web_root:             %kernel.root_dir%/../web
data_root:            %kernel.root_dir%/../web
cache_mkdir_mode:     0777
cache_prefix:         /media/cache
cache:                web_path
cache_clearer:        true
data_loader:          filesystem
controller_action:    liip_imagine.controller:filterAction
formats:              []
filter_sets:
    my_thumb:
        filters:
            crop: { start: [0, 0], size: [200, 150] }
    my_paste:
        quality: 90
        filters:
            paste: { start: [30, 60], image: ../web/uploads/images/firma.jpg }
第二,真的,我不明白他说“使用自定义数据加载器…”

在本例中,他仅修改ImageControl类(Liip\ImageBundle\Controller)中的filteraction()方法。我想知道如何动态修改该方法?例如,从我的控制器indexAction()

我也读过这篇文章,@NSCoder说“你可以使用内置的过滤器并修改它们的配置。”但我不明白


我已经找了好几天了,但我还没有找到一个可以开始的例子。

我找到了另一个LiipImagineBundle主题(),它帮助我做了我想做的事情

这里我留下了我用来动态应用过滤器的代码

public function indexAction()
{

    $container = $this->container;

    # The controller service
    $imagemanagerResponse = $container->get('liip_imagine.controller');

    # The filter configuration service
    $filterConfiguration = $container->get('liip_imagine.filter.configuration');

    # Get the filter settings
    $configuracion = $filterConfiguration->get('my_thumb');

    # Update filter settings
    $configuracion['filters']['crop']['size'] = array(50, 150);
    $configuracion['filters']['crop']['start'] = array(10, 10);
    $filterConfiguration->set('my_thumb', $configuracion);

    # Apply the filter
    $imagemanagerResponse->filterAction($this->getRequest(),'uploads/images/logo.jpg','my_thumb');

    # Move the img from temp
    $fileTemporal = new File('media/cache/my_thumb/uploads/images/logo.jpg');

    $fileTemporal->move('uploads/images/', 'mini-logo.jpg');

    ####################################

}
liip_imagine:
driver:               gd
web_root:             %kernel.root_dir%/../web
data_root:            %kernel.root_dir%/../web
cache_mkdir_mode:     0777
cache_prefix:         /media/cache
cache:                web_path
cache_clearer:        true
data_loader:          filesystem
controller_action:    liip_imagine.controller:filterAction
formats:              []
filter_sets:
    my_thumb:
        filters:
            crop: { start: [0, 0], size: [200, 150] }
    my_paste:
        quality: 90
        filters:
            paste: { start: [30, 60], image: ../web/uploads/images/firma.jpg }
public function indexAction()
{

    $container = $this->container;

    # The controller service
    $imagemanagerResponse = $container->get('liip_imagine.controller');

    # The filter configuration service
    $filterConfiguration = $container->get('liip_imagine.filter.configuration');

    # Get the filter settings
    $configuracion = $filterConfiguration->get('my_thumb');

    # Update filter settings
    $configuracion['filters']['crop']['size'] = array(50, 150);
    $configuracion['filters']['crop']['start'] = array(10, 10);
    $filterConfiguration->set('my_thumb', $configuracion);

    # Apply the filter
    $imagemanagerResponse->filterAction($this->getRequest(),'uploads/images/logo.jpg','my_thumb');

    # Move the img from temp
    $fileTemporal = new File('media/cache/my_thumb/uploads/images/logo.jpg');

    $fileTemporal->move('uploads/images/', 'mini-logo.jpg');

    ####################################

}