我在Symfony2项目中使用LiipImagineBundle,一切都很顺利。我已经定义了一个缩略图过滤器:
<img src="{{ 'bundles/app/images/home/warning.jpg'|imagine_filter('') }}" alt="Warning" />
<img src="{{ 'bundles/app/images/home/warning.jpg'|imagine_filter() }}" alt="Warning" />
它完美无缺,但我的一些图像不需要任何过滤器,所以我试图删除过滤器:
{% image '@AppBundle/Resources/public/images/example.jpg' %}
<img src="{{ asset_url }}" alt="Example" />
{% endimage %}
**编辑以纠正示例,因为malcolm指出
但它不起作用,所以我需要对这些图像使用Assetic:
Data
我在bundle的文档中找不到任何允许我在没有过滤器的情况下使用Bundle的选项。真的吗?当然,我可以使用LiipImagineBundle方式在需要过滤器时包含图像,而在不需要时使用Assetic方式,但是在实现几乎相同的两种不同方式之间切换是非常烦人的。
答案 0 :(得分:0)
回答你的问题 - 创建一个original
大小的过滤器然后:)。像这样:
class OriginalSizeFilter implements LoaderInterface
{
public function load(ImageInterface $image, array $options = [])
{
$size = $image->getSize();
$origWidth = $size->getWidth();
$origHeight = $size->getHeight();
$filter = new Thumbnail(new Box($origWidth, $origHeight));
$image = $filter->apply($image);
return $image;
}
}
服务:
original_size_filter:
class: ...\OriginalSizeFilter
tags:
- { name: liip_imagine.filter.loader, loader: original_size_filter }
config.yml:
filter_sets:
original:
filters:
original_size_filter: ~
用法:
<img src="{{ 'bundles/app/images/home/warning.jpg'|imagine_filter('original') }}" alt="Warning" />
但是,如果您不想应用任何过滤器,为什么不使用asset()
功能呢?