参考链接:nginx官方文档
安装
ngx_http_image_filter_module一个官方模块,用于转换JPEG、GIF、PNG和WebP格式的图像。
默认情况下,此模块不是启用的,在编译时使用--with-http_image_filter_module
配置参数启用它。
此模块使用libgd
库。建议使用库的最新可用版本,libgd库必须对WebP支持进行编译。
基本使用
Syntax: image_filter off;
image_filter test;
image_filter size;
image_filter rotate 90 | 180 | 270;
image_filter resize width height;
image_filter crop width height;
Default: image_filter off;
Context: location
示例
location /img/ {
proxy_pass http://backend;
image_filter resize 150 100;
image_filter rotate 90;
error_page 415 = /empty;
}
location = /empty {
empty_gif;
}
参数说明
off:
关闭模块;
test:
确保响应为JPEG、GIF、PNG或WebP格式的图像。否则,返回415(Unsupported Media Type)错误。
size:
以JSON格式输出有关图像的信息,例如:
{ "img" : { "width": 100, "height": 100, "type": "gif" } }
如果出现错误,输出如下:
{}
rotate 90|180|270:
按指定的度数逆时针旋转图像。参数值可以包含变量。此模式可以单独使用,也可以与“调整大小”和“裁剪”转换一起使用。
resize width height:
缩小。若要仅减少一个维度,可以将另一个维度指定为“-”。如果出现错误,服务器将返回代码415(Unsupported Media Type)。参数值可以包含变量。当与“旋转”参数一起使用时,旋转发生在还原之后。
crop width height:
裁剪。若要仅减少一个维度,可以将另一个维度指定为“-”。如果出现错误,服务器将返回代码415(Unsupported Media Type)。参数值可以包含变量。与“旋转”参数一起使用时,旋转发生在还原之前。
image_filter_buffer size:
设置用于读取图像的缓冲区的最大大小。超过大小时,服务器返回错误415(Unsupported Media Type)。
image_filter_interlace on | off:
如果启用,最终图像将被隔行扫描。对于JPEG,最终图像将采用“渐进式JPEG”格式。
image_filter_jpeg_quality quality:
设置转换的JPEG图像的所需质量。可接受的值在1到100之间。较小的值通常意味着较低的图像质量和较少的数据传输。建议的最大值为95。参数值可以包含变量。
image_filter_sharpen percent:
增加最终图像的清晰度。锐度百分比可以超过100。零值将禁用锐化。参数值可以包含变量。
image_filter_transparency on|off:
定义在使用调色板指定的颜色转换GIF图像或PNG图像时是否应保留透明度。透明度的丧失会使图像质量更好。PNG中的alpha通道透明度始终保持不变。
image_filter_webp_quality quality:
设置转换的WebP图像的所需质量。可接受的值在1到100之间。较小的值通常意味着较低的图像质量和较少的数据传输。参数值可以包含变量。