|
Модуль ngx_http_image_filter_module (0.7.54+) — это фильтр
для преобразования изображений в форматах JPEG, GIF и PNG.
По умолчанию этот модуль не собирается, его сборку необходимо
разрешить с помощью конфигурационного параметра
--with-http_image_filter_module.
Для сборки и работы этого модуля необходима библиотека
libgd.
Рекомендуется использовать самую последнюю версию библиотеки,
на текущий момент это версия 2.0.35.
Пример конфигурации
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
ширина
высота;
image_filter
crop
ширина
высота;
|
|
умолчание:
|
image_filter off;
|
|
контекст:
|
location
|
Задаёт тип преобразования изображения:
off
-
отключает обработку данным модулем во вложенном location.
test
-
проверяет, что ответ действительно является изображением
в формате JPEG, GIF или PNG.
В противном случае возвращается ошибка
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_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 on|off;
|
|
умолчание:
|
image_filter_transparency on;
|
|
контекст:
|
http, server, location
|
Определяет, сохранять ли прозрачность при обработке изображений
в формате PNG с цветами, заданными палитрой, и в формате GIF.
Потеря прозрачности позволяет получить более качественное изображение.
Прозрачность альфа-канала в формате PNG сохраняется всегда.
|