Share via


イメージ テクスチャを使用して図形を塗りつぶす

Image クラスと TextureBrush クラスを使用して、閉じた図形にテクスチャを塗りつぶすことができます。

次の例では、楕円を画像で塗りつぶしています。 このコードは Image オブジェクトを構築し、その Image オブジェクトのアドレスを引数として TextureBrush コンストラクターに渡します。 3 番目のコード ステートメントはイメージをスケーリングし、4 番目のステートメントは縮小されたイメージの繰り返しコピーで楕円を埋めます。

Image image(L"ImageFile.jpg");
TextureBrush tBrush(&image);
stat = tBrush.SetTransform(&Matrix(75.0/640.0, 0.0f, 0.0f,
   75.0/480.0, 0.0f, 0.0f));
stat = graphics.FillEllipse(&tBrush,Rect(0, 150, 150, 250));

前のコード例では、 TextureBrush::SetTransform メソッドは、描画前にイメージに適用される変換を設定します。 元の画像の幅は 640 ピクセル、高さは 480 ピクセルであると仮定しています。 変換では、水平方向と垂直方向のスケーリング値を設定することで、イメージが 75 ×75 に縮小されます。

Note

前の例では、画像サイズは 75 ×75 で、楕円のサイズは 150 ×250 です。 塗りつぶされる楕円よりも画像が小さいため、楕円には画像が並べて表示されます。 並べて表示するというのは、図形の境界に到達するまで、画像が水平方向と垂直方向に繰り返して表示されることを意味します。 タイリングの詳細については、「イメージを使用 して図形を並べ表示する」を参照してください。