图像过滤器#

该模块是一个过滤器,用于转换JPEG、GIF、PNG和WebP格式的图像。

从源代码构建 时,默认不会构建此模块;需要使用 ‑‑with‑http_image_filter_module 构建选项 启用。

在我们的代码库中,该模块是 动态构建 的,并作为名为 angie-module-image-filterangie-pro-module-image-filter 的单独软件包提供。

重要

此模块利用 libgd 库。建议使用库的最新可用版本。

要转换WebP格式的图像,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#

语法

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;

默认

image_filter off;

上下文

location

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

off

关闭周围位置的模块处理。

test

确保响应为JPEG、GIF、PNG或WebP格式的图像。否则,将返回415(不支持的媒体类型)错误。

size

以JSON格式输出图像的信息,例如:
{ "img" : { "width": 100, "height": 100, "type": "gif" } }
如果发生错误,输出如下:
{}

rotate 90|180|270

逆时针旋转图像指定的度数。参数值可以包含变量。此模式可以单独使用或与 resizecrop 转换一起使用。

resize width height

按照指定的大小按比例缩小图像。要仅在一个维度上缩小,可以将另一个维度指定为"-"。如果发生错误,服务器将返回415(不支持的媒体类型)代码。参数值可以包含变量。当与 rotate 参数一起使用时,旋转在缩小 之后 发生。

crop width height

按照更大边的大小按比例缩小图像,并裁剪另一边的多余边缘。要仅在一个维度上缩小,可以将另一个维度指定为"-"。如果发生错误,服务器将返回415(不支持的媒体类型)代码。参数值可以包含变量。当与 rotate 参数一起使用时,旋转在缩小 之前 发生。

image_filter_buffer#

语法

image_filter_buffer size;

默认

image_filter_buffer 1M;

上下文

http, server, location

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

image_filter_interlace#

语法

image_filter_interlace on | off;

默认

image_filter_interlace off;

上下文

http, server, location

如果启用,最终图像将会交错。对于JPEG,最终图像将为“渐进式JPEG”格式。

image_filter_jpeg_quality#

语法

image_filter_jpeg_quality quality;

默认

image_filter_jpeg_quality 75;

上下文

http, server, location

设置转换后的JPEG图像的期望质量。可接受的值范围为1到100。较小的值通常意味着图像质量较低和传输的数据较少。建议的最大值为95。参数值可以包含变量。

image_filter_sharpen#

语法

image_filter_sharpen percent;

默认

image_filter_sharpen 0;

上下文

http, server, location

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

image_filter_transparency#

语法

image_filter_transparency on | off;

默认

image_filter_transparency on;

上下文

http, server, location

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

image_filter_webp_quality#

语法

image_filter_webp_quality quality;

默认

image_filter_webp_quality 80;

上下文

http, server, location

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