我正在使用Symfony 2,我刚刚成功安装了AvalancheImagineBundle。我创建了自己的缩略图过滤器,如README中所述,我创建了一个名为“profile”的第二个过滤器(目前只是为了确保它有效)与缩略图做同样的事情。
// app/config/config.yml
# Avalanche Imagine Configuration
avalanche_imagine:
web_root: %kernel.root_dir%/../web
cache_prefix: images/cache
driver: gd
filters:
my_thumb:
type: thumbnail
options: { size: [100, 100], mode: outbound }
profile:
type: thumbnail <-- HOW DO I DEFINE OTHER TYPES?
options: { size: [200, 200], mode: outbound }
但是,我不希望个人资料成为缩略图。 我的问题:如何定义过滤器的新“类型”?
编辑:我看过README提供的example,但我无法理解如何编写自己的过滤器。我想写一个简单的过滤器,它采用“宽度”参数并将图像缩小到具有该宽度。
更新:我一直在摆弄这些图像滤镜已经有一段时间了,我仍然像以前一样迷失......有人能给我一个正确方向的暗示?如果它鼓励任何人,我正在开发一个开源项目:)
答案 0 :(得分:2)
在这里回答你的问题很有趣,因为我是Imagine的创造者和维护者:)
基本上,将过滤器添加到捆绑包是一个单步过程
创建过滤器加载器 - 实现Avalanche \ Bundle \ ImagineBundle \ Imagine \ Filter \ Loader \ LoaderInterface
将它作为服务注册在Symfony DIC中并正确标记它 以下是标记默认缩略图过滤器加载程序的方法 您可以在此处的源代码中找到它 - https://github.com/avalanche123/AvalancheImagineBundle/blob/master/Resources/config/imagine.xml#L100
最后,在yaml中指定过滤器,使用你在loader标签的“filter”属性中指定的任何值:
avalanche_imagine:
filters:
my_thumb:
type: <your filter name>
options: { #your options# }
如果您遇到任何问题,请告诉我,另外,随意在捆绑的github存储库中创建问题。
干杯!
答案 1 :(得分:1)
您是否阅读了README中的“加载自定义过滤器”一章?它告诉您如何配置过滤器。
有关示例实现,请查看ThumbnailFilterLoader类。