Image Filter#

O módulo é um filtro que transforma imagens nos formatos JPEG, GIF, PNG e WebP.

Ao compilar a partir do código-fonte, este módulo não é compilado por padrão; ele deve ser habilitado com a ‑‑with‑http_image_filter_module opção de compilação.

Em nossos repositórios, o módulo é compilado dinamicamente e está disponível como um pacote separado chamado angie-module-image-filter ou angie-pro-module-image-filter.

Nota

Este módulo utiliza a biblioteca libgd. É recomendado usar a versão mais recente disponível da biblioteca.

Para transformar imagens no formato WebP, a biblioteca libgd deve ser compilada com suporte ao WebP.

Exemplo de Configuração#

location /img/ {
    proxy_pass   http://backend;
    image_filter resize 150 100;
    image_filter rotate 90;
    error_page   415 = /empty;
}

location = /empty {
    empty_gif;
}

Diretivas#

image_filter#

Sintaxe

  • image_filter off;

  • image_filter test;

  • image_filter size;

  • image_filter rotate 90 | 180 | 270;

  • image_filter resize width height;

  • image_filter crop width height;

Padrão

image_filter off;

Contexto

location

Define o tipo de transformação a ser realizada nas imagens:

off

desativa o processamento do módulo em uma localização envolvente.

test

garante que as respostas sejam imagens nos formatos JPEG, GIF, PNG ou WebP. Caso contrário, o erro 415 (Unsupported Media Type) é retornado.

size

produz informações sobre imagens em formato JSON, por exemplo: "img" : { "width": 100, "height": 100, "type": "gif" } Em caso de erro, a saída é a seguinte: {}

rotate 90|180|270

rotaciona imagens no sentido anti-horário pelo número especificado de graus. O valor do parâmetro pode conter variáveis. Este modo pode ser usado sozinho ou junto com as transformações resize e crop.

resize width height

reduz proporcionalmente uma imagem para os tamanhos especificados. Para reduzir apenas uma dimensão, a outra dimensão pode ser especificada como "-". Em caso de erro, o servidor retornará o código 415 (Unsupported Media Type). Os valores dos parâmetros podem conter variáveis. Quando usado junto com o parâmetro rotate, a rotação acontece após a redução.

crop width height

reduz proporcionalmente uma imagem para o tamanho do lado maior e corta as bordas excessivas do outro lado. Para reduzir apenas uma dimensão, a outra dimensão pode ser especificada como "-". Em caso de erro, o servidor retornará o código 415 (Unsupported Media Type). Os valores dos parâmetros podem conter variáveis. Quando usado junto com o parâmetro rotate, a rotação acontece antes da redução.

image_filter_buffer#

Sintaxe

image_filter_buffer size;

Padrão

image_filter_buffer 1M;

Contexto

http, server, location

Define o tamanho máximo do buffer usado para ler imagens. Quando o tamanho é excedido, o servidor retorna o erro 415 (Unsupported Media Type).

image_filter_interlace#

Sintaxe

image_filter_interlace on | off;

Padrão

image_filter_interlace off;

Contexto

http, server, location

Se habilitado, as imagens finais serão entrelaçadas. Para JPEG, as imagens finais estarão no formato "JPEG progressivo".

image_filter_jpeg_quality#

Sintaxe

image_filter_jpeg_quality quality;

Padrão

image_filter_jpeg_quality 75;

Contexto

http, server, location

Define a qualidade desejada das imagens JPEG transformadas. Os valores aceitáveis estão na faixa de 1 a 100. Valores menores geralmente implicam em menor qualidade de imagem e menos dados para transferir. O valor máximo recomendado é 95. O valor do parâmetro pode conter variáveis.

image_filter_sharpen#

Sintaxe

image_filter_sharpen percent;

Padrão

image_filter_sharpen 0;

Contexto

http, server, location

Aumenta a nitidez da imagem final. A porcentagem de nitidez pode exceder 100. O valor 0 desabilita a nitidez. O valor do parâmetro pode conter variáveis.

image_filter_transparency#

Sintaxe

image_filter_transparency on | off;

Padrão

image_filter_transparency on;

Contexto

http, server, location

Define se a transparência deve ser preservada ao transformar imagens GIF ou imagens PNG com cores especificadas por uma paleta. A perda de transparência resulta em imagens de melhor qualidade. A transparência do canal alfa em PNG é sempre preservada.

image_filter_webp_quality#

Sintaxe

image_filter_webp_quality quality;

Padrão

image_filter_webp_quality 80;

Contexto

http, server, location

Define a qualidade desejada das imagens WebP transformadas. Os valores aceitáveis estão na faixa de 1 a 100. Valores menores geralmente implicam em menor qualidade de imagem e menos dados para transferir. O valor do parâmetro pode conter variáveis.