Модуль 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" } }
{}
rotate
90
|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.
Меньшим значениям обычно соответствует худшее качество изображения
и меньший объём передаваемых данных.
В значении параметра допустимо использование переменных.