方法: イメージを並べたパターンによって図形を塗りつぶす

タイルを隣り合わせて床を覆うことができるのと同様に、長方形の画像を並べて配置することで、図形を埋める(タイル)ことができます。 図形の内部をタイル表示するには、テクスチャ ブラシを使用します。 TextureBrush オブジェクトを構築する場合、コンストラクターに渡す引数の 1 つは Image オブジェクトです。 テクスチャ ブラシを使用して図形の内部を塗りつぶすと、このイメージが繰り返しコピーされて図形に適用されます。

TextureBrush オブジェクトの折り返しモード プロパティは、矩形グリッドで繰り返されるイメージの向きを決定します。 グリッド内のすべてのタイルの向きを同じにすることも、1 つのグリッド位置から次のグリッド位置にイメージを反転させることもできます。 反転には、水平、垂直、またはその両方を指定できます。 次の例は、異なる種類のフリッピングを利用したタイル配置を示します。

イメージをタイル表示するには

  • この例では、次の 75×75 の画像を使って、200×200 の四角形をタイル状に敷き詰めます。

赤い家と木を示すタイル画像。

  • 次の図は、四角形がどのように画像でタイルされているかを示しています。 すべてのタイルの向きが同じであることに注意してください。反転はありません。

すべてのタイルの向きが同じになるように画像を並べて表示した四角形。

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

タイリング中に画像を水平方向に反転するには

  • この例では、同じ 75×75 の画像を使用して、200×200 の四角形を塗りつぶします。 ラップ モードは、画像を水平方向に反転するように設定されています。 次の図は、四角形に画像をタイル状に配置する方法を示しています。 あるタイルから特定の行の次のタイルに移動すると、画像が水平方向に反転されることに注意してください。

画像を水平方向に反転してタイル状に並べた四角形。

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipX;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipX
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

タイリング中に画像を垂直方向に反転するには

  • この例では、同じ 75×75 の画像を使用して、200×200 の四角形を塗りつぶします。 ラップモードは、画像を垂直方向に反転するように設定しています。

    Image image = new Bitmap("HouseAndTree.gif");
    TextureBrush tBrush = new TextureBrush(image);
    Pen blackPen = new Pen(Color.Black);
    tBrush.WrapMode = WrapMode.TileFlipY;
    e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
    e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
    
    Dim image As New Bitmap("HouseAndTree.gif")
    Dim tBrush As New TextureBrush(image)
    Dim blackPen As New Pen(Color.Black)
    tBrush.WrapMode = WrapMode.TileFlipY
    e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
    e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))
    
    

タイリング中に画像を水平方向および垂直方向に反転するには

  • この例では、同じ 75×75 の画像を使用して、200×200 の四角形を並べて表示します。 ラップモードは、画像を水平方向と垂直方向の両方に反転させるように設定されています。 次の図は、画像が長方形をタイル状に配置する方法を示しています。 あるタイルから特定の行の次のタイルに移動すると、画像は水平方向に反転され、特定の列のタイルから次のタイルに移動すると、画像は垂直方向に反転されることに注意してください。

画像を水平および垂直に反転させてタイル状に配置した四角形です。

Image image = new Bitmap("HouseAndTree.gif");
TextureBrush tBrush = new TextureBrush(image);
Pen blackPen = new Pen(Color.Black);
tBrush.WrapMode = WrapMode.TileFlipXY;
e.Graphics.FillRectangle(tBrush, new Rectangle(0, 0, 200, 200));
e.Graphics.DrawRectangle(blackPen, new Rectangle(0, 0, 200, 200));
Dim image As New Bitmap("HouseAndTree.gif")
Dim tBrush As New TextureBrush(image)
Dim blackPen As New Pen(Color.Black)
tBrush.WrapMode = WrapMode.TileFlipXY
e.Graphics.FillRectangle(tBrush, New Rectangle(0, 0, 200, 200))
e.Graphics.DrawRectangle(blackPen, New Rectangle(0, 0, 200, 200))

関連項目