IXpsOMObjectFactory::CreateImageBrush メソッド (xpsobjectmodel.h)
IXpsOMImageBrush インターフェイスを作成します。
構文
HRESULT CreateImageBrush(
[in] IXpsOMImageResource *image,
[in] const XPS_RECT *viewBox,
[in] const XPS_RECT *viewPort,
[out, retval] IXpsOMImageBrush **imageBrush
);
パラメーター
[in] image
ブラシのソース イメージとして使用するイメージを含む IXpsOMImageResource インターフェイス。
[in] viewBox
ビュー ボックスを定義するXPS_RECT構造体。これは、ブラシで使用されるソース イメージの領域です。
[in] viewPort
ビューポートを定義するXPS_RECT構造体。これは、出力領域の最初のタイルで覆われた領域です。
[out, retval] imageBrush
新しい IXpsOMImageBrush インターフェイスへのポインター。
戻り値
このメソッドは HRESULT を返します。 使用可能な値には、次の表に含まれる値が含まれますが、これらに限定されません。 この表に記載されていない XPS ドキュメント API の戻り値については、「 XPS ドキュメント エラー」を参照してください。
リターン コード | 説明 |
---|---|
|
メソッドが成功しました。 |
|
image、 viewBox、 viewPort、または imageBrush が NULL です。 |
|
viewBox または viewPort には、無効な四角形または値が含まれています。 |
注釈
ブラシの viewbox は、タイル イメージとして使用するソース イメージまたはビジュアルの部分を指定します。
ブラシのビューボックスの座標は、ソース コンテンツを基準にして相対的であり、(0,0) はソース コンテンツの左上隅を指定します。 画像の場合、ブラシのビューボックスで指定された寸法は、1/96 の単位で表されます。 ソース イメージ内の対応するピクセル座標は、次のように計算されます。
次の図では、左側の画像はソースイメージの例であり、右端はビューボックスを選択した後に発生するブラシです。
ソースイメージの解像度が 96 x 96 ドット/インチで、画像のサイズが 96 x 96 ピクセルの場合、 viewbox パラメーターのフィールドの値は次のようになります。上記のパラメーター値は、次のようにソース イメージに対応しています。
- SourceLeft = (96 × 48) / 96 = 左側から 48 ピクセル
- SourceTop = (96 × 24) / 96 = 上から 24 ピクセル
- SourceWidth = (96 × 24) / 96 = 24 ピクセル幅
- SourceHeight = (96 × 48) / 96 = 48 ピクセルの高さ
イメージ ブラシは、イメージまたはその一部を受け取り、イメージを変換してタイルを作成し、結果のタイルをビューポート (出力領域のタイルの宛先ジオメトリ) に配置し、タイル モードで説明されているように出力領域を塗りつぶすタイル ブラシです。
ビューポートは、出力領域の最初のタイルで覆われた領域です。 ビューポート イメージは、タイル モードで説明されているように、出力領域全体で繰り返されます。
次の図は、画像ブラシを使用して出力領域を塗りつぶす方法を示しています。 左から右へ、元のイメージがビューポートに塗りつぶされるように変換され、出力領域のビューポート領域に配置され、出力領域に塗りつぶされるように並べて表示されます。
次のコード例は、このメソッドを使用して新しいインターフェイスを作成する方法を示しています。
IXpsOMImageBrush *newInterface;
// The following values are defined outside of
// this example.
// IXpsOMImageResource *image;
// XPS_RECT viewBox;
// XPS_RECT viewPort;
// Note the implicit requirement that CoInitializeEx
// has previously been called from this thread.
hr = CoCreateInstance(
__uuidof(XpsOMObjectFactory),
NULL,
CLSCTX_INPROC_SERVER,
_uuidof(IXpsOMObjectFactory),
reinterpret_cast<LPVOID*>(&xpsFactory)
);
if (SUCCEEDED(hr))
{
hr = xpsFactory->CreateImageBrush (
image,
&viewBox,
&viewPort,
&newInterface);
if (SUCCEEDED(hr))
{
// use newInterface
newInterface->Release();
}
xpsFactory->Release();
}
else
{
// evaluate HRESULT error returned in hr
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7、Windows Vista SP2 と Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
サポートされている最小のサーバー | Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ] |
対象プラットフォーム | Windows |
ヘッダー | xpsobjectmodel.h |