Image クラスと TextureBrush クラスを使用して、閉じた図形をテクスチャで塗りつぶすことができます。
例
次の例では、楕円に画像を塗り込む方法を示します。 このコードは、 Image オブジェクトを構築し、その Image オブジェクトのアドレスを引数として TextureBrush コンストラクターに渡します。 3 番目のステートメントはイメージをスケーリングし、4 番目のステートメントは、拡大/縮小されたイメージの繰り返しコピーで楕円を塗りつぶします。
次のコードでは、 Transform プロパティには、描画前にイメージに適用される変換が含まれています。 元のイメージの幅が 640 ピクセル、高さが 480 ピクセルであるとします。 変換では、水平方向と垂直方向のスケーリング値を設定することで、イメージが 75×75 に縮小されます。
注
次の例では、画像のサイズは 75×75、楕円のサイズは 150×250 です。 画像が塗りつぶされている楕円よりも小さいため、楕円は画像と並べて表示されます。 タイリングとは、図形の境界に達するまで画像が水平方向と垂直方向に繰り返されることを意味します。 タイリングの詳細については、「方法: 図形をイメージで並べる」をご覧ください。
Image image = new Bitmap("ImageFile.jpg");
TextureBrush tBrush = new TextureBrush(image);
tBrush.Transform = new Matrix(
75.0f / 640.0f,
0.0f,
0.0f,
75.0f / 480.0f,
0.0f,
0.0f);
e.Graphics.FillEllipse(tBrush, new Rectangle(0, 150, 150, 250));
Dim image As New Bitmap("ImageFile.jpg")
Dim tBrush As New TextureBrush(image)
tBrush.Transform = New Matrix( _
75.0F / 640.0F, _
0.0F, _
0.0F, _
75.0F / 480.0F, _
0.0F, _
0.0F)
e.Graphics.FillEllipse(tBrush, New Rectangle(0, 150, 150, 250))
コードのコンパイル
前の例は Windows フォームで使用できるように設計されており、PaintEventArgs イベント ハンドラーのパラメーターである e
Paintが必要です。
こちらも参照ください
.NET Desktop feedback