纹理画刷(TextureBrush)实际上就是将图片在目标区域进行平铺,同影线画刷(HatchBrush)类似,纹理画刷也是使用同样的基本图案在水平方向和垂直方向上进行一定顺序排列之后构成的画刷。不同的是,影线画刷使用的基本图案是由简单的点、线条构成的,其色彩也只有前景色和背景色。而纹理画刷使用的基本图案为导入的图片或导入图片的部分区域,色彩也是任意的。下为纹理画刷的基本使用Demo。
Demo:
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.Clear(Color.White);
Rectangle rect1 = new Rectangle(10,10,300,300);
Rectangle rect2 = new Rectangle(350,10,300,300);
Pen p = new Pen(Color.Green,3);
//导入图片
Image img = Image.FromFile(@"C:\Users\ThinkPad\Desktop\GDIPulsTextureBrush\Nemo.bmp");
//使用图片的原始大小构建纹理画刷
TextureBrush tb1 = new TextureBrush(img);
//填充椭圆并绘制其边框
g.FillEllipse(tb1,rect1);
g.DrawEllipse(p,rect1);
//使用图片的部分区域构建纹理画刷
TextureBrush tb2 = new TextureBrush(img,new Rectangle(55,35,55,35));
//填充椭圆并绘制其边框
g.FillEllipse(tb2,rect2);
g.DrawEllipse(p,rect2);
//释放资源
tb1.Dispose();
tb2.Dispose();
img.Dispose();
}
图片原始大小:
Demo运行图: