ネスト化と埋め込みをリクエスト 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)がインストールされ、画像サービングで有効になっている場合、FXG リクエストは、src= (またはmask=)コマンドで指定することで、レイヤーソースとして使用できます。 次の構文を使用します。

…&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画像レンダリングを使用して、テンプレートのlayer2の画像を生成します。

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、画像レンダリング参照、​ テンプレート ​画像サービングユーティリティ ​

recommendation-more-help
dynamic-media-developer-resources-help-aem-is-ir-api