モジュール 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 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(サポートされていないメディアタイプ)エラーを返します。
size
JSON形式で画像に関する情報を出力します。例:
{ "img" : { "width": 100, "height": 100, "type": "gif" } }
エラーの場合、出力は次のようになります。
{}
rotate 90|180|270
指定された角度だけ画像を反時計回りに回転させます。パラメータ値には変数を指定できます。このモードは単独で使用することも、resizeおよびcrop変換と併用することもできます。
resize 高さ
画像を指定されたサイズに比例して縮小します。一方の寸法のみを縮小する場合は、もう一方の寸法に「-」を指定できます。エラーが発生した場合は、サーバーはコード415(サポートされていないメディアタイプ)を返します。パラメータ値には変数を指定できます。rotateパラメータと併用した場合は、縮小の後で回転が行われます。
crop 高さ
画像を長い方の辺のサイズに比例して縮小し、もう一方の辺の余分な部分を切り取ります。一方の寸法のみを縮小する場合は、もう一方の寸法に「-」を指定できます。エラーが発生した場合は、サーバーはコード415(サポートされていないメディアタイプ)を返します。パラメータ値には変数を指定できます。rotateパラメータと併用した場合は、縮小の前に回転が行われます。

構文 image_filter_buffer サイズ;
デフォルト
image_filter_buffer 1M;
コンテキスト httpserverlocation

画像の読み取りに使用されるバッファの最大サイズを設定します。サイズを超えた場合、サーバーはエラー415(サポートされていないメディアタイプ)を返します。

構文 image_filter_interlace on | off;
デフォルト
image_filter_interlace off;
コンテキスト httpserverlocation

このディレクティブはバージョン1.3.15で追加されました。

有効にすると、最終的な画像はインターレースされます。JPEGの場合、最終的な画像は「プログレッシブJPEG」形式になります。

構文 image_filter_jpeg_quality 品質;
デフォルト
image_filter_jpeg_quality 75;
コンテキスト httpserverlocation

変換されたJPEG画像の目的の品質を設定します。許容値は1〜100の範囲です。値が小さいほど、通常は画質が低くなり、転送するデータ量が少なくなります。推奨される最大値は95です。パラメータ値には変数を指定できます。

構文 image_filter_sharpen パーセント;
デフォルト
image_filter_sharpen 0;
コンテキスト httpserverlocation

最終的な画像のシャープネスを上げます。シャープネスのパーセンテージは100を超えることができます。値が0の場合、シャープニングは無効になります。パラメータ値には変数を指定できます。

構文 image_filter_transparency on|off;
デフォルト
image_filter_transparency on;
コンテキスト httpserverlocation

GIF画像またはパレットで指定された色を持つPNG画像を変換する際に、透明度を維持するかどうかを定義します。透明度を失うと、画質が向上します。PNGのアルファチャネルの透明度は常に維持されます。

構文 image_filter_webp_quality 品質;
デフォルト
image_filter_webp_quality 80;
コンテキスト httpserverlocation

このディレクティブはバージョン1.11.6で追加されました。

変換されたWebP画像の目的の品質を設定します。許容値は1〜100の範囲です。値が小さいほど、通常は画質が低くなり、転送するデータ量が少なくなります。パラメータ値には変数を指定できます。