http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息,由于是即时计算的结果,所以网站访问量大的话,不建议使用。
安装nginx
wget http://nginx.org/download/nginx-1.7.3.tar.gz
安装gd
yum install gd-devel
安装pcre
yum install pcre-devel
解压安装nginx
tar -zxvf nginx-1.7.3.tar.gz
cd nginx-1.7.3
./configure --prefix=/usr/local/nginx --with-http_image_filter_module
make&&make install
安装完成后配置nginx
location ~ .*_(\d+)x(\d+)\.jpg$ {
set $w $1;
set $h $2;
rewrite ^(.*)_(\d+)x(\d+)\.jpg$ $1 break;
image_filter resize $w $h;
}
例如
原图
地址http://img1.neinei3.com/attached/image/20140626/2014062617130663223.gif
可通过
http://img1.neinei3.com/attached/image/20140626/2014062617130663223.gif_138x138.jpg
访问对其等比缩放。
http_image_filter_module支持的指令:
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,超过则415错误;
image_filter_transparency:设置变换的JPEG图像的期望质量。可接受的值是从1到100的范围内。较小的值通常意味着既降低图像质量,减少传输数据,推荐的最大值为95。参数值可以包含变量。
image_filter_sharpen:增加了最终图像的清晰度。锐度百分比可以超过100。零值将禁用锐化