Tiling an image in GDI+

J

JezB

I'm trying to write a routine to tile a given image in a given rectangle:

public static void DrawTiledImage(Graphics g, Image image, Rectangle r)
{
ImageAttributes ia = new ImageAttributes();
ia.SetWrapMode(WrapMode.Tile);
g.DrawImage(image, r, 0, 0, image.Width, image.Height,
GraphicsUnit.Pixel, ia);
}

Problem is this seems to be stretching the image not tiling it. What am I
doing wrong ?
 
H

Herfried K. Wagner [MVP]

JezB said:
I'm trying to write a routine to tile a given image in a given rectangle:

public static void DrawTiledImage(Graphics g, Image image, Rectangle r)
{
ImageAttributes ia = new ImageAttributes();
ia.SetWrapMode(WrapMode.Tile);
g.DrawImage(image, r, 0, 0, image.Width, image.Height,
GraphicsUnit.Pixel, ia);
}

Problem is this seems to be stretching the image not tiling it. What am I
doing wrong ?

\\\
Private m_Brush As TextureBrush

Private Sub Form1_Load(...) Handles MyBase.Load
m_Brush = New TextureBrush(New Bitmap("C:\WINDOWS\Angler.bmp"))
End Sub

Protected Overrides Sub OnPaintBackground(ByVal e As PaintEventArgs)
MyBase.OnPaintBackground(e)
e.Graphics.FillRectangle(m_Brush, Me.ClientRectangle)
End Sub
///
 
B

Bob Powell [MVP]

Just draw the image using a TextureBrush and the tiling will happen as if by
magic...

--
Bob Powell [MVP]
Visual C#, System.Drawing

Ramuseco Limited .NET consulting
http://www.ramuseco.com

Find great Windows Forms articles in Windows Forms Tips and Tricks
http://www.bobpowell.net/tipstricks.htm

Answer those GDI+ questions with the GDI+ FAQ
http://www.bobpowell.net/faqmain.htm

All new articles provide code in C# and VB.NET.
Subscribe to the RSS feeds provided and never miss a new article.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top