`

利用Nginx http_image_filter_module模块来裁剪过大的图片

 
阅读更多

http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息,由于是即时计算的结果,所以网站访问量大的话,不建议使用。

安装还是很简单的,默认HttpImageFilterModule模块是不会编译进nginx的,所以要在configure时候指定

1
./configure --prefix=/usr/local/nginx --with-http_image_filter_module

make&&make install后就可以进行配置了,做最简单的配置,先让模块可以跑起来.

其配置例子如下:

1
2
3
4
5
6
7
8
location /img/{
image_filter resize 150 100;
error_page 415 = /empty;
}
 
location = /empty {
empty_gif;
}

最后开启nginx,这样访问/img/目录下的图片,都会按照高度最高100并且宽度最高100按照原图比例进行截取出来,并输出给浏览器。当然也可以开启重写去读取本机另一个目录下源文件;

http_image_filter_module支持5种指令:

image_filter:测试图片文件合法性(image_filter test);3个角度旋转图片(image_filter rotate 90 | 180 | 270);以json格式输出图片宽度、高度、类型(image_filter size);最小边缩小图片保持图片完整性(resize width height);以及最大边缩放图片后截取多余的部分(image_filter crop [width] [height]);

image_filter_jpeg_quality:设置jpeg图片的压缩质量比例(官方最高建议设置到95,但平时75就可以了);

image_filter_buffer:限制图片最大读取大小,默认为1M;

image_filter_transparency:用来禁用gif和palette-based的png图片的透明度,以此来提高图片质量。

官方WIKI: http://wiki.nginx.org/NginxHttpImageFilterModule

Tags: http_image_filter_module nginx裁剪图片

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics