他有很多的过滤器,其中Assetic有四个过滤器能够进行图片的优化。可以让你不使用图片编辑器处理每个图片,就能获得更小尺寸的图片。结果会被缓存,而且没有批量生产所以没有性能的损耗,很好的呈现给用户。
使用Jpegoptim
Jpegoptim是一个很实用的JPEG文件优化程序。要与Assetic一起使用,并在Assetic添加配置:
1 2 3 4 5 |
# app/config/config.yml assetic: filters: jpegoptim: bin: path/to/jpegoptim |
注意你要使用jpegoptim,你一定要把它安装到系统上。这个bin选项要指定到jpegoptim编译的二进制文件位置。
现在你就能从一个模板使用他了:
1 2 3 4 |
{% image '@AcmeFooBundle/Resources/public/images/example.jpg' filter='jpegoptim' output='/images/example.jpg' %} <img src="{{ asset_url }}" alt="Example"/> {% endimage %} |
移除所有EXIF数据
默认情况下,运行它只删除了文件的一些meta信息存储。一些EXIF信息和注释都没有移除,如果你想移除这些,可以添加 strip_all 选项:
1 2 3 4 5 6 |
# app/config/config.yml assetic: filters: jpegoptim: bin: path/to/jpegoptim strip_all: true |
降低图片质量
默认情况下,JPEG的质量水平是不受约束的。你要是想降低文件的大小你可以添加max选项。当然这会以牺牲图片质量为代价:
1 2 3 4 5 6 |
# app/config/config.yml assetic: filters: jpegoptim: bin: path/to/jpegoptim max: 70 |
短语法:Twig Function
如果你使用Twig。你可以启用和使用Twig function的特殊的短语法。开始把它添加到配置文件吧:
1 2 3 4 5 6 7 8 |
# app/config/config.yml assetic: filters: jpegoptim: bin: path/to/jpegoptim twig: functions: jpegoptim: ~ |
Twig模板可以更改为一下内容:
1 |
<img src="{{ jpegoptim('@AcmeFooBundle/Resources/public/images/example.jpg') }}" alt="Example"/> |
你还能指定输出的目录,添加 output 选项:
1 2 3 4 5 6 7 8 |
# app/config/config.yml assetic: filters: jpegoptim: bin: path/to/jpegoptim twig: functions: jpegoptim: { output: images/*.jpg } |