Модуль http_image_filter#

Фильтр для преобразования изображений в форматах JPEG, GIF, PNG и WebP.

По умолчанию этот модуль не собирается; его сборку необходимо включить с помощью параметра конфигурации ‑‑with‑http_image_filter_module.

В наших репозиториях модуль собран динамически и доступен отдельным пакетом angie-module-image-filter.

Важно

Для сборки и работы этого модуля необходима библиотека libgd. Рекомендуется использовать самую последнюю версию библиотеки.

Для преобразования изображений в формате WebP библиотека 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 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 или 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 размер;

Умолчание:

image_filter_buffer 1M;

Контекст:

http, server, location

Задает максимальный размер буфера для чтения изображения. При превышении размера сервер вернет ошибку 415 (Unsupported Media Type).

image_filter_interlace#

Синтаксис:

image_filter_interlace on | off;

Умолчание:

image_filter_interlace off;

Контекст:

http, server, location

Если включено, то итоговые изображения будут с чересстрочностью. В случае JPEG итоговые изображения будут в формате «progressive JPEG».

image_filter_jpeg_quality#

Синтаксис:

image_filter_jpeg_quality качество;

Умолчание:

image_filter_jpeg_quality 75;

Контекст:

http, server, location

Задает желаемое качество преобразованного изображения в формате JPEG. Допустимые значения находятся в диапазоне от 1 до 100. Меньшим значениям обычно соответствует худшее качество изображения и меньший объем передаваемых данных. Максимальное рекомендуемое значение — 95. В значении параметра допустимо использование переменных.

image_filter_sharpen#

Синтаксис:

image_filter_sharpen процент;

Умолчание:

image_filter_sharpen 0;

Контекст:

http, server, location

Повышает резкость итогового изображения. Процент резкости может быть больше 100. Значение 0 отключает повышение резкости. В значении параметра допустимо использование переменных.

image_filter_transparency#

Синтаксис:

image_filter_transparency on | off;

Умолчание:

image_filter_transparency on;

Контекст:

http, server, location

Определяет, сохранять ли прозрачность при обработке изображений в формате GIF и в формате PNG с цветами, заданными палитрой. Потеря прозрачности позволяет получить более качественное изображение. Прозрачность альфа-канала в формате PNG сохраняется всегда.

image_filter_webp_quality#

Синтаксис:

image_filter_webp_quality качество;

Умолчание:

image_filter_webp_quality 80;

Контекст:

http, server, location

Задает желаемое качество преобразованного изображения в формате WebP. Допустимые значения находятся в диапазоне от 1 до 100. Меньшим значениям обычно соответствует худшее качество изображения и меньший объем передаваемых данных. В значении параметра допустимо использование переменных.