Модуль 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 image_filter image_filter image_filter
image_filter
image_filter
|
|---|---|
| Умолчание: |
image_filter off; |
| Контекст: |
location |
Задаёт тип преобразования изображения:
off- отключает обработку данным модулем во вложенном location.
test- проверяет, что ответ действительно является изображением в формате JPEG, GIF, PNG или WebP. В противном случае возвращается ошибка 415 (Unsupported Media Type).
size-
выдаёт информацию об изображении в формате JSON, например:
В случае ошибки выдаётся{ "img" : { "width": 100, "height": 100, "type": "gif" } }{} rotate90|180|270-
поворачивает изображение против часовой стрелки на указанное число градусов.
В значении параметра допустимо использование переменных.
Можно использовать как отдельно, так и совместно с преобразованиями
resizeиcrop. resizeширинавысота-
пропорционально уменьшает изображение до указанных размеров.
Если требуется уменьшить только по одному измерению, то в качестве второго
можно указать “
-”. В случае ошибки сервер возвращает код 415 (Unsupported Media Type). В значениях параметров допустимо использование переменных. При использовании совместно сrotate, поворот изображения происходит после уменьшения размеров изображения. cropширинавысота-
пропорционально уменьшает изображение до размера большей стороны
и обрезает лишние края по другой стороне.
Если требуется уменьшить только по одному измерению, то в качестве второго
можно указать “
-”. В случае ошибки сервер возвращает код 415 (Unsupported Media Type). В значениях параметров допустимо использование переменных. При использовании совместно сrotate, поворот изображения происходит до уменьшения размеров изображения.
| Синтаксис: |
image_filter_buffer |
|---|---|
| Умолчание: |
image_filter_buffer 1M; |
| Контекст: |
http, server, location |
Задаёт максимальный размер буфера для чтения изображения. При превышении размера сервер вернёт ошибку 415 (Unsupported Media Type).
| Синтаксис: |
image_filter_interlace |
|---|---|
| Умолчание: |
image_filter_interlace off; |
| Контекст: |
http, server, location |
Эта директива появилась в версии 1.3.15.
Если включено, то итоговые изображения будут с чересстрочностью. В случае JPEG итоговые изображения будут в формате “progressive JPEG”.
| Синтаксис: |
image_filter_jpeg_quality |
|---|---|
| Умолчание: |
image_filter_jpeg_quality 75; |
| Контекст: |
http, server, location |
Задаёт желаемое качество преобразованного изображения
в формате JPEG.
Допустимые значения находятся в диапазоне от 1 до 100.
Меньшим значениям обычно соответствует худшее качество изображения
и меньший объём передаваемых данных.
Максимальное рекомендуемое значение — 95.
В значении параметра допустимо использование переменных.
| Синтаксис: |
image_filter_sharpen |
|---|---|
| Умолчание: |
image_filter_sharpen 0; |
| Контекст: |
http, server, location |
Повышает резкость итогового изображения. Процент резкости может быть больше 100. Значение 0 отключает повышение резкости. В значении параметра допустимо использование переменных.
| Синтаксис: |
image_filter_transparency |
|---|---|
| Умолчание: |
image_filter_transparency on; |
| Контекст: |
http, server, location |
Определяет, сохранять ли прозрачность при обработке изображений в формате GIF и в формате PNG с цветами, заданными палитрой. Потеря прозрачности позволяет получить более качественное изображение. Прозрачность альфа-канала в формате PNG сохраняется всегда.
| Синтаксис: |
image_filter_webp_quality |
|---|---|
| Умолчание: |
image_filter_webp_quality 80; |
| Контекст: |
http, server, location |
Эта директива появилась в версии 1.11.6.
Задаёт желаемое качество преобразованного изображения
в формате WebP.
Допустимые значения находятся в диапазоне от 1 до 100.
Меньшим значениям обычно соответствует худшее качество изображения
и меньший объём передаваемых данных.
В значении параметра допустимо использование переменных.
