Module ngx_http_image_filter_module
Example Configuration Directives image_filter image_filter_buffer image_filter_interlace image_filter_jpeg_quality image_filter_sharpen image_filter_transparency image_filter_webp_quality |
The ngx_http_image_filter_module
module (0.7.54+) is a filter that transforms images in JPEG, GIF, PNG, and WebP formats.
This module is not built by default, it should be enabled with the --with-http_image_filter_module
configuration parameter.
libgd
library must be compiled with the WebP support.
Example Configuration
location /img/ { proxy_pass http://backend; image_filter resize 150 100; image_filter rotate 90; error_page 415 = /empty; } location = /empty { empty_gif; }
Directives
Syntax: | image_filter image_filter image_filter image_filter image_filter image_filter |
---|---|
Default: | image_filter off; |
Context: | location |
Sets the type of transformation to perform on images:
-
off
- turns off module processing in a surrounding location.
-
test
- ensures that responses are images in either JPEG, GIF, PNG, or WebP format. Otherwise, the 415 (Unsupported Media Type) error is returned.
-
size
-
outputs information about images in a JSON format, e.g.:
{ "img" : { "width": 100, "height": 100, "type": "gif" } }
{}
-
rotate
90
|180
|270
-
rotates images counter-clockwise by the specified number of degrees. Parameter value can contain variables. This mode can be used either alone or along with the
resize
andcrop
transformations. -
resize
width
height
-
proportionally reduces an image to the specified sizes. To reduce by only one dimension, another dimension can be specified as “
-
”. In case of an error, the server will return code 415 (Unsupported Media Type). Parameter values can contain variables. When used along with therotate
parameter, the rotation happens after reduction. -
crop
width
height
-
proportionally reduces an image to the larger side size and crops extraneous edges by another side. To reduce by only one dimension, another dimension can be specified as “
-
”. In case of an error, the server will return code 415 (Unsupported Media Type). Parameter values can contain variables. When used along with therotate
parameter, the rotation happens before reduction.
Syntax: | image_filter_buffer |
---|---|
Default: | image_filter_buffer 1M; |
Context: | http , server , location |
Sets the maximum size of the buffer used for reading images. When the size is exceeded the server returns error 415 (Unsupported Media Type).
Syntax: | image_filter_interlace |
---|---|
Default: | image_filter_interlace off; |
Context: | http , server , location |
This directive appeared in version 1.3.15.
If enabled, final images will be interlaced. For JPEG, final images will be in “progressive JPEG” format.
Syntax: | image_filter_jpeg_quality |
---|---|
Default: | image_filter_jpeg_quality 75; |
Context: | http , server , location |
Sets the desired quality
of the transformed JPEG images. Acceptable values are in the range from 1 to 100. Lesser values usually imply both lower image quality and less data to transfer. The maximum recommended value is 95. Parameter value can contain variables.
Syntax: | image_filter_sharpen |
---|---|
Default: | image_filter_sharpen 0; |
Context: | http , server , location |
Increases sharpness of the final image. The sharpness percentage can exceed 100. The zero value disables sharpening. Parameter value can contain variables.
Syntax: | image_filter_transparency |
---|---|
Default: | image_filter_transparency on; |
Context: | http , server , location |
Defines whether transparency should be preserved when transforming GIF images or PNG images with colors specified by a palette. The loss of transparency results in images of a better quality. The alpha channel transparency in PNG is always preserved.
Syntax: | image_filter_webp_quality |
---|---|
Default: | image_filter_webp_quality 80; |
Context: | http , server , location |
This directive appeared in version 1.11.6.
Sets the desired quality
of the transformed WebP images. Acceptable values are in the range from 1 to 100. Lesser values usually imply both lower image quality and less data to transfer. Parameter value can contain variables.