ngx_http_image_filter_module 模块 (0.7.54+) 是一个过滤器,可以转换 JPEG、GIF、PNG 和 WebP 格式的图像。
此模块不是默认构建的,应该使用 --with-http_image_filter_module 配置参数启用它。
该模块使用 libgd 库。建议使用库的最新可用版本。
WebP格式支持出现在版本1.11.6中。要转换此格式的图像,必须使用WebP支持编译libgd库。
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 resize width height; image_filter crop width height; 默认值:image_filter off; 上下文:location
设置对图像执行的转换类型:
off 关闭当前 location 对该模块的支持
test 确保响应是 JPEG、GIF、PNG 或 WebP 格式的图像。否则,返回 415(不支持的媒体类型)错误。
size 以 JSON 格式输出有关图像的信息,例如:
{ "img" : { "width": 100, "height": 100, "type": "gif" } }
如果出现错误,输出如下:
{}
rotate 90|180|270 按指定的度数逆时针旋转图像。参数值可以包含变量。此模式可以单独使用,也可以与调整大小和裁剪转换一起使用。
resize width height 按比例将图像缩小到指定的大小。要仅减少一个维度,可以将另一个维度指定为“-”。如果出现错误,服务器将返回代码 415(不支持的媒体类型)。参数值可以包含变量。当与旋转参数一起使用时,旋转发生在减小之后。
crop width height 将图像按比例缩小到较大的一侧,并在另一侧裁剪无关的边缘。要仅减少一个维度,可以将另一个维度指定为“-”。如果出现错误,服务器将返回代码 415(不支持的媒体类型)。参数值可以包含变量。当与旋转参数一起使用时,旋转发生在减小之前。
语 法:image_filter_buffer size; 默认值:image_filter_buffer 1M; 上下文:http, server, location
设置用于读取图像的缓冲区的最大大小。当超过大小时,服务器返回错误 415(不支持的媒体类型)。
语 法:image_filter_interlace on | off; 默认值:image_filter_interlace off; 上下文:http, server, location
该指令出现在 1.3.15 版中。
如果启用,最终图像将隔行扫描。对于JPEG,最终图像将采用 “渐进式JPEG” 格式。
语 法:image_filter_jpeg_quality quality; 默认值:image_filter_jpeg_quality 75; 上下文:http, server, location
设置转换后的 JPEG 图像的所需质量。可接受的值在 1 到 100 的范围内。较小的值通常意味着较低的图像质量和较少的数据传输。最大推荐值为 95。参数值可以包含变量。
语 法:image_filter_sharpen percent; 默认值:image_filter_sharpen 0; 上下文:http, server, location
提高最终图像的清晰度。清晰度百分比可以超过100。零值禁用锐化。参数值可以包含变量。
语 法:image_filter_transparency on|off; 默认值:image_filter_transparency on; 上下文:http, server, location
定义使用调色板指定的颜色转换GIF图像或PNG图像时是否应保留透明度。透明度的损失会产生质量更好的图像。PNG中的Alpha通道透明度始终保持不变。
语 法:image_filter_webp_quality quality; 默认值:image_filter_webp_quality 80; 上下文:http, server, location
该指令出现在 1.11.6 版中。
设置转换后的 WebP 图像的所需质量。可接受的值在 1 到 100 的范围内。较小的值通常意味着较低的图像质量和较少的数据传输。参数值可以包含变量。