ネストと埋め込みのリクエスト request-nesting-and-embedding

画像サービングは、画像サービングリクエストの無制限のネスト、画像レンダリングリクエストの埋め込み、および外部サーバーから取得した画像の埋め込みをサポートします。 これらのメカニズムをサポートするのは、レイヤーイメージとレイヤーマスクのみです。

NOTE
特定のメールクライアントやプロキシサーバーでは、ネストや埋め込みの構文に使用される中括弧がエンコードされる場合があります。 これが問題となるアプリケーションでは、中括弧ではなく括弧を使用する必要があります。

ネストされた画像サービングリクエスト section-6954202119e0466f8ff27c79f4f039c8

次の構文を使用して、src= (または mask=)コマンドで画像サービングリクエスト全体を指定することで、それをレイヤーソースとして使用できます。

…&src=is( nestedRequest)&…

is トークンでは大文字と小文字が区別されます。

ネストされたリクエストにサーバーのルートパス(通常は http:// *server*/is/image/')を含めることはできません。

NOTE
ネストされたリクエスト内のネストされたリクエスト区切り文字('(',')')およびコマンド区切り文字('?''&''=')は、HTTP エンコードしてはいけません。 事実上、ネストされたリクエストは、外側の(ネストした)リクエストと同じようにエンコードする必要があります。

前処理ルールはネストされたリクエストに適用されます。

次のコマンドは、ネストされたリクエストで(リクエスト URL または catalog::Modifier または catalog::PostModifier で)指定した場合は無視されます。

  • fmt=
  • qlt=
  • iccEmbed=
  • printRes=
  • quantize=
  • req=
  • bgc=

ネストされたリクエストの結果イメージにマスク(アルファ)データが含まれる場合は、埋め込みレイヤーにレイヤーマスクとして渡されます。

また、attribute::MaxPix およびネストされたリクエストに適用される画像カタログの attribute::DefaultPix も無視されます。

ネストされた IS リクエストの画像結果は、cache=on を含めることで、オプションでキャッシュできます。 デフォルトでは、中間データのキャッシュは無効になっています。 キャッシュは、適切な期間内に別のリクエストで中間イメージを再利用することが期待される場合にのみ有効にしてください。 標準のサーバーサイドキャッシュ管理が適用されます。 データは、可逆形式でキャッシュされます。

埋め込み画像レンダーリクエスト section-69c5548db930412b9b90d9b2951a6969

サーバーでDynamic Media画像レンダリングが有効になっている場合、src= (または mask=) コマンドで指定することで、レンダリングリクエストをレイヤーソースとして使用できます。 次の構文を使用します。

…&src=ir( *renderRequest*)&…

ir トークンでは大文字と小文字が区別されます。

renderRequest は、HTTP ルートパスの http:// *server*/ir/render/ を除く、通常の画像レンダリングリクエストです。

NOTE
ネストされたリクエスト内のネストされたリクエスト区切り文字('(',')')およびコマンド区切り文字('?''&''=')は、HTTP エンコードしてはいけません。 事実上、埋め込みリクエストは、外側の(埋め込み)リクエストと同じようにエンコードする必要があります。

次の画像レンダリングコマンドは、ネストされたリクエストで指定された場合、無視されます。

  • fmt=
  • qlt=
  • icc=
  • iccEmbed=
  • printRes=
  • req=

また、ネストされたレンダリング要求に適用されるマテリアル カタログの attribute::MaxPixattribute::DefaultPix も無視されます。

ネストされた IR 要求のイメージ結果は、cache=on を含めることでオプションでキャッシュできます。 デフォルトでは、中間データのキャッシュは無効になっています。 キャッシュは、適切な期間内に別のリクエストで中間イメージを再利用することが期待される場合にのみ有効にしてください。 標準のサーバーサイドキャッシュ管理が適用されます。 データは、可逆形式でキャッシュされます。

埋め込み FXG レンダーリクエスト section-c817e4b4f7da414ea5a51252ca7e120a

FXG グラフィックレンダラー(AGMServer)がインストールされ、画像サービングで有効になっている場合、src= (または mask=)コマンドで指定することで、FXG リクエストをレイヤーソースとして使用できます。 次の構文を使用します。

…&src=fxg( renderRequest)&…

fxg トークンでは大文字と小文字が区別されます。

NOTE
FXG グラフィックスレンダリングは、Dynamic Mediaがホストする環境でのみ使用でき、追加のライセンスが必要になる場合があります。 詳しくは、Dynamic Media テクニカルサポートにお問い合わせください。

renderRequest は、HTTP ルートパスの http:// *server*/agm/render/ を除く、通常の FXG レンダーリクエストです。

NOTE
ネストされたリクエスト内の区切り文字('(',')')とコマンド区切り文字('?''&''=')は、HTTP エンコードしてはいけません。 事実上、埋め込みリクエストは、外側の(埋め込み)リクエストと同じようにエンコードする必要があります。

次の FXG コマンドは、ネストされたリクエストで指定された場合、無視されます。

  • fmt=
  • qlt=
  • icc=
  • iccEmbed=
  • cache=

外部画像ソース section-84e83ecfcd1a43748cdfc7a6f8c04cb8

画像サービングは、外部 HTTP サーバー上のソース画像へのアクセスをサポートします。

NOTE
リモート URL でサポートされているのは HTTP プロトコルだけです。

src= または mask= コマンドに外部 URL を指定するには、外部 URL または URL フラグメントを括弧で区切ります。

…&src=( foreignUrl)&…

重要ネストされたリクエスト内の区切り文字('(',')')とコマンド区切り文字('?''&''=')は、HTTP エンコードしないでください。 事実上、埋め込みリクエストは、外側の(埋め込み)リクエストと同じようにエンコードする必要があります。

完全な絶対 URL (attribute::AllowDirectUrls が設定されている場合)、および attribute::RootUrl に関連する URL が許可されています。 絶対 URL が埋め込まれ、属性:AllowDirectUrls が 0 の場合、または相対 URL が指定され、attribute::RootUrl が空の場合は、エラーが発生します。

外部 URL はリクエスト URL のパスコンポーネントで直接指定することはできませんが、相対パスを絶対 URL に変換することを許可する前処理ルールを設定することは可能です(以下の例を参照)。

外部画像は、HTTP 応答に含まれるキャッシュヘッダーに従ってサーバーによってキャッシュされます。 ETag 応答ヘッダーも Last-Modified HTTP 応答ヘッダーも存在しない場合、応答はキャッシュされません。 これにより、同じ外部画像に対する繰り返しアクセスでは、パフォーマンスが低下する可能性があります。画像サービングでは、アクセスのたびに画像を再取得して再検証する必要があるからです。

このメカニズムは、コンポーネントあたり 16 ビットのソース画像を除き、画像変換(IC)ユーティリティでサポートされているのと同じ画像ファイル形式をサポートします。

NOTE
外部イメージが初めて使用されるときに、イメージ・サービングによって検証ユーティリティが自動的に実行され、イメージが有効で、送信中に破損していないことを確認します。 これにより、初回アクセスでわずかな遅延が生じる可能性があります。 最高のパフォーマンスを得るには、このような画像のサイズを制限するか、十分に圧縮される画像ファイル形式を使用することをお勧めします。

制限 section-fb68e3f0d40947feb94d7bf183b64929

ネストされたリクエストまたは埋め込まれたリクエストによって生成される画像のサイズは、通常、自動的に最適化されます。 ネストされたリクエスト画像のキャッシュが有効な場合、キャッシュエントリを再利用する際にさらなるスケーリングが不要になるように、ネストされた画像の正確なサイズを指定することで、パフォーマンスが徐々に向上する可能性があります。

重要な画像サービングでは、ネストされたリクエストまたは埋め込まれたリクエストのダブルエンコーディングをサポートしていません。 ネストされたリクエストや埋め込まれたリクエストは、単純なリクエストと同様に HTTP エンコードする必要があります。

section-d800cfc31abe46d2a964f8e7929231f1

キャッシュを使用したテンプレートのレイヤー化:

レイヤリングテンプレートにキャッシュを追加するには、ネストを使用します。 限られた数の背景画像が、非常に可変なテキストでオーバーレイされます。 最初のテンプレート文字列は次のようになります。

layer=0&src=$img$&size=300,300&layer=1&text=$txt$

わずかな変更を加えるだけで、レイヤー 0 の画像を事前にスケールして永続的にキャッシュできるので、サーバーの負荷が軽減されます。

layer=0&src=is(?src=$img$&size=300,300&cache=on)&layer=1&text=$txt$

Dynamic Media画像レンダリングのリクエストの埋め込み

myCatalog/myTemplate に保存されているテンプレートを使用します。Dynamic Media画像レンダリングを使用して、テンプレートのレイヤー 2 の画像を生成します。

http://server/is/image/myCatalog/myTemplate?layer=2&src=ir(myRenderCatalog/myRenderObject?id=myIdValue&sel=group&src=is(myCatalog/myTexture1?res=30)&res=30)&wid=300

ネストされた中括弧に注意してください。 画像レンダリングリクエストは、繰り返し可能なテクスチャを取得するために、画像サービングへのコールバックを埋め込みます。

関連項目 section-109a0a9a3b144158958351139c8b8e69

src=mask=Request PreProcessing、画像レンダリングリファレンス、Templates 画像サービングユーティリティ

recommendation-more-help
a26166cd-f2f4-45ce-996d-96a0f0d6cf49