Nginx

ngx_http_image_filter_module

ngx_http_image_filter_module模块

  • 示例配置

  • 指令

  • image_filter

  • image_filter_buffer

  • image_filter_interlace

  • image_filter_jpeg_quality

  • image_filter_sharpen

  • image_filter_transparency

  • image_filter_webp_quality

ngx_http_image_filter_module模块(0.7.54+)是一种过滤器,可以转换JPEG,GIF,PNG和WebP格式的图像。

该模块不是默认生成的,它应该使用--with-http_image_filter_module配置参数启用。

该模块使用libgd库。建议使用库的最新版本。WebP格式支持出现在版本1.11.6中。要以这种格式转换图像,libgd必须使用WebP支持编译库。

示例配置

location /img/ { proxy_pass http://backend; image_filter resize 150 100; image_filter rotate 90; error_page 415 = /empty; } location = /empty { empty_gif; }

指令

句法:image_filter off; image_filter test; image_filter size; image_filter rotate 90 | 180 | 270; image_filter调整宽度高度; image_filter裁剪宽度高度;
默认:image_filter off;
语境:位置

设置要在图像上执行的转换类型:

off关闭周围位置的模块处理。test确保响应是JPEG,GIF,PNG或WebP格式的图像。否则,返回415(不支持的媒体类型)错误。size以JSON格式输出关于图像的信息,例如:

{ "img" : { "width": 100, "height": 100, "type": "gif" } }

出现错误时,输出如下所示:

{}

rotate90| 180| 270将图像逆时针旋转指定的度数。参数值可以包含变量。这种模式可以单独使用,也可以resizecrop转换一起使用。resizewidthheight按比例将图像缩小至指定尺寸。要减少一个维度,可以将另一个维度指定为“ -”。如果发生错误,服务器将返回代码415(不支持的介质类型)。参数值可以包含变量。与rotate参数一起使用时,旋转发生缩小之后cropwidthheight按比例将图像缩小到较大的一侧,并另一侧产生无关边缘。为了仅减少一个维度,可以将另一个维度指定为“-”。如果发生错误,服务器将返回代码415(不支持的介质类型)。参数值可以包含变量。当与rotate参数一起使用时,旋转发生缩减之前

句法:image_filter_buffer大小;
默认:image_filter_buffer 1M;
语境:http,服务器,位置

设置用于读取图像的缓冲区的最大大小。当超过大小时,服务器返回错误415(不支持的介质类型)。

句法:image_filter_interlace开启 | 关闭;
默认:image_filter_interlace off;
语境:http,服务器,位置

如果启用,最终图像将交错。对于JPEG,最终图像将采用“逐行JPEG”格式。

句法:image_filter_jpeg_quality质量;
默认:image_filter_jpeg_quality 75;
语境:http,服务器,位置

设置所需quality的转换后的JPEG图像。可接受的值在1到100的范围内。较小的值通常意味着较低的图像质量和较少的数据传输。最大推荐值是95.参数值可以包含变量。

句法:image_filter_sharpen百分比;
默认:image_filter_sharpen 0;
语境:http,服务器,位置

增加最终图像的清晰度。锐度百分比可以超过100.零值禁用锐化。参数值可以包含变量。

句法:image_filter_transparency 开启 | 关闭;
默认:image_filter_transparency 开启;
语境:http,服务器,位置

定义在使用调色板指定的颜色转换GIF图像或PNG图像时是否应保留透明度。透明度的降低会导致质量更好的图像。PNG中的alpha通道透明度始终保留。

句法:image_filter_webp_quality质量;
默认:image_filter_webp_quality 80;
语境:http,服务器,位置

设置所需quality的转换后的WebP图像。可接受的值在1到100的范围内。较小的值通常意味着较低的图像质量和较少的数据传输。参数值可以包含变量。