画質設定

Manael はクライアントが q クエリパラメーターを通じて変換後の画像のエンコード品質を制御できます。

使い方

画像 URL に q クエリパラメーターを追加して、目的のエンコード品質を指定します。値は 1 から 100 の整数で、値が高いほど品質が良くなりますがファイルサイズも大きくなります。

curl -sI -H "Accept: image/webp" "http://localhost:8080/image.jpg?q=80"

有効な範囲

q パラメーターは 1 から 100(両端含む)の整数値を受け付けます。範囲外の値は自動的にクランプされます。

  • 1 未満の値は 1 として扱われます。
  • 100 を超える値は 100 として扱われます。

フォーマット別の品質指定

フォーマット:値 構文を使用して特定の出力フォーマットを対象にすることができます。複数のフォーマット別の値はカンマ区切りリストで q パラメーターにまとめることができます。

# WebP のみ品質を指定する
curl -sI -H "Accept: image/webp" "http://localhost:8080/image.jpg?q=webp:75"

# WebP と AVIF それぞれの品質を個別に指定する
curl -sI -H "Accept: image/avif,image/webp" "http://localhost:8080/image.jpg?q=webp:80,avif:50"

# 汎用品質と WebP 固有のオーバーライドを組み合わせる
curl -sI -H "Accept: image/webp" "http://localhost:8080/image.jpg?q=70,webp:85"
構文 説明
?q=80 任意の出力フォーマットに適用される汎用品質。
?q=webp:75 WebP に変換する場合のみ適用される品質。
?q=avif:50 AVIF に変換する場合のみ適用される品質。
?q=webp:80,avif:50 1 つのパラメーターにまとめたフォーマット別の値。

デフォルトの動作

q パラメーターが省略された場合、Manael はフォーマット別の組み込みデフォルト品質を使用します。

フォーマット デフォルト品質
WebP 90
AVIF 60

サーバーレベルのデフォルト品質

MANAEL_DEFAULT_QUALITY 環境変数を設定することで、オペレーターが組み込みのデフォルト値を上書きできます。この値は、クライアントが q パラメーターでフォーマット別のオーバーライドを指定しない限り、すべてのフォーマットに適用されます。

MANAEL_DEFAULT_QUALITY=75 manael -http=:8080 -upstream_url=http://localhost:9000

リクエストのエンコード品質を決定する際の優先順位は次のとおりです。

  1. q クエリパラメーターのフォーマット別品質(例: ?q=webp:80)。
  2. q クエリパラメーターの汎用品質(例: ?q=80)。
  3. MANAEL_DEFAULT_QUALITY によるサーバーレベルのデフォルト。
  4. 組み込みのフォーマット別デフォルト(WebP は 90、AVIF は 60)。