实用画刷填充图形
2009-09-29 14:07
176 查看
GDI+Brush对象用于填充闭合形状的内部。GDI+定义多种填充样式:纯色、阴影图案、图像纹理和颜色渐变。
一。如何:用纯色填充形状
若要用纯色填充形状,请创建SolidBrush对象,然后将该SolidBrush对象作为一个参数传递给Graphics类的某个填充方法。下面的示例演示如何用红色填充椭圆。
SolidBrush构造函数采用一个Color对象作为其仅有的参数。FromArgb方法使用的值分别表示颜色的alpha、红色、绿色和蓝色分量。这些值中的每一个都必须在0到255之间。第一个255表示颜色是完全不透明的,第二个255表示红色分量的强度达到最大。两个零表示绿色和蓝色分量的强度为0。
传递给FillEllipse方法的四个数(0,0,100,60)指定该椭圆的外接矩形的位置和尺寸。该矩形的左上角位于(0,0),宽度为100,高度为60。
SolidBrushsolidBrush=newSolidBrush(
Color.FromArgb(255,255,0,0));
e.Graphics.FillEllipse(solidBrush,0,0,100,60);
Paint事件处理程序的参数PaintEventArgse。
使用画笔填充形状
二。如何:用阴影图案填充形状
阴影图案由两种颜色组成:一种是背景色,一种是在背景上形成图案的线条的颜色。若要用阴影图案填充闭合的形状,请使用HatchBrush对象。下面的示例演示如何用阴影图案填充椭圆:
HatchBrush构造函数带有三个参数:阴影样式、阴影线颜色和背景颜色。阴影样式参数可以为HatchStyle枚举中的任何值。在HatchStyle枚举中有50多个元素;在下面的列表中显示了其中的几个元素:
Horizontal
Vertical
ForwardDiagonal
BackwardDiagonal
Cross
DiagonalCross
下面的插图显示已填充的椭圆。
三。如何:用图像纹理填充形状
通过使用Image类和TextureBrush类,可用纹理填充闭合的形状。
TextureBrush构造函数。第三条语句缩放图像,第四条语句用缩放后图像的重复副本填充椭圆。
在下面的代码中,Transform属性包含在绘制图像之前应用到该图像的转换。假定原始图像的宽度为640像素,高度为480像素。该转换通过设置水平和垂直缩放值将图像缩小到75x75。
使用画笔填充形状
一。如何:用纯色填充形状
若要用纯色填充形状,请创建
示例
在下面的代码中,传递给
SolidBrushsolidBrush=newSolidBrush(
Color.FromArgb(255,255,0,0));
e.Graphics.FillEllipse(solidBrush,0,0,100,60);
编译代码
前面的示例是为使用Windows窗体而设计的,它需要请参见
其他资源
二。如何:用阴影图案填充形状
阴影图案由两种颜色组成:一种是背景色,一种是在背景上形成图案的线条的颜色。若要用阴影图案填充闭合的形状,请使用
示例
下面的插图显示已填充的椭圆。
HatchBrushhBrush=newHatchBrush( HatchStyle.Horizontal, Color.Red, Color.FromArgb(255,128,255,255)); e.Graphics.FillEllipse(hBrush,0,0,100,60);
编译代码
前面的示例是为使用Windows窗体而设计的,它需要Paint事件处理程序的参数 PaintEventArgse。 请参见
其他资源
使用画笔填充形状
三。如何:用图像纹理填充形状
通过使用
示例
下面的示例用图像填充椭圆。该代码构造Image对象,然后将该Image对象的地址作为参数传递给在下面的代码中,
注意 |
---|
在下面的示例中,图像大小为75x75、椭圆大小为150x250。因为图像比它所填充的椭圆小,所以图像平铺在椭圆上。平铺意味着图像水平和垂直重复排列,直到到达形状的边界。有关平铺的更多信息,请参见 |
Imageimage=newBitmap("ImageFile.jpg");
TextureBrushtBrush=newTextureBrush(image);
tBrush.Transform=newMatrix(
75.0f/640.0f,
0.0f,
0.0f,
75.0f/480.0f,
0.0f,
0.0f);
e.Graphics.FillEllipse(tBrush,newRectangle(0,150,150,250));
编译代码
前面的示例是为使用Windows窗体而设计的,它需要Paint事件处理程序的参数 PaintEventArgse。 请参见
其他资源
使用画笔填充形状四。如何:在形状中平铺图像
正如瓷砖可一块挨一块地放置以覆盖地面一样,矩形图像也可一个挨一个地放置以填充(平铺)形状。若要平铺形状的内部,请使用纹理画笔。在构造TextureBrush对象时,传递给构造函数的一个参数是 Image对象。在使用纹理画笔为形状的内部涂色时,将用该图像的重复副本填充该形状。
TextureBrush对象的覆盖模式属性确定图像在矩形网格中重复时的定向方式。既可让网格中所有平铺图像的方向都相同,也可让平铺图像在相邻网格间翻转。可水平或垂直翻转,也可同时进行水平和垂直翻转。下面的示例演示用不同类型的翻转进行平铺。平铺图像
该示例使用下面的75×75图像来平铺200×200的矩形。
下面的插图显示如何使用图像平铺此矩形。请注意,所有的平铺图像都采用相同的方向,没有翻转。
Imageimage=newBitmap("HouseAndTree.gif");
TextureBrushtBrush=newTextureBrush(image);
PenblackPen=newPen(Color.Black);
e.Graphics.FillRectangle(tBrush,newRectangle(0,0,200,200));
e.Graphics.DrawRectangle(blackPen,newRectangle(0,0,200,200));
平铺时水平翻转图像
该示例使用相同的75×75图像来填充200×200的矩形。覆盖模式被设置为水平翻转图像。下面的插图显示如何使用图像平铺此矩形。请注意,在给定行中从一个平铺图像移到下一个时,图像将水平翻转。
Imageimage=newBitmap("HouseAndTree.gif");
TextureBrushtBrush=newTextureBrush(image);
PenblackPen=newPen(Color.Black);
tBrush.WrapMode=WrapMode.TileFlipX;
e.Graphics.FillRectangle(tBrush,newRectangle(0,0,200,200));
e.Graphics.DrawRectangle(blackPen,newRectangle(0,0,200,200));
平铺时垂直翻转图像
该示例使用相同的75×75图像来填充200×200的矩形。覆盖模式被设置为垂直翻转图像。Imageimage=newBitmap("HouseAndTree.gif");
TextureBrushtBrush=newTextureBrush(image);
PenblackPen=newPen(Color.Black);
tBrush.WrapMode=WrapMode.TileFlipY;
e.Graphics.FillRectangle(tBrush,newRectangle(0,0,200,200));
e.Graphics.DrawRectangle(blackPen,newRectangle(0,0,200,200));
平铺时水平和垂直翻转图像
该示例使用相同的75×75图像来平铺200×200的矩形。覆盖模式被设置为同时在水平和垂直方向翻转图像。下面的插图显示如何使用图像平铺此矩形。请注意,在给定行中从一个平铺图像移到下一个时,图像将水平翻转;在给定列中从一个平铺图像移到下一个时,图像将被垂直翻转。Imageimage=newBitmap("HouseAndTree.gif");
TextureBrushtBrush=newTextureBrush(image);
PenblackPen=newPen(Color.Black);
tBrush.WrapMode=WrapMode.TileFlipXY;
e.Graphics.FillRectangle(tBrush,newRectangle(0,0,200,200));
e.Graphics.DrawRectangle(blackPen,newRectangle(0,0,200,200));
请参见
其他资源
相关文章推荐
- 实用画刷填充图形
- 实用画刷填充图形
- GDI+绘制图形和画刷填充图形
- 几何画板怎么给月牙图形填充颜色
- 理解SVG的图形填充规则
- Graphic 矢量图形的区域填充与缠绕规则
- 使用Shader填充图形
- 动画原理——图形填充
- 图形的填充
- <canvas>学习笔记——如何给图形填充颜色
- Delphi下的GDI+编程[7] 单色画刷-SolidBrush & 填充矩形-FillRectangle
- MFC与QT图形生数据图案填充处理
- VC 图形填充
- [Web Chart系列之五] 3. 实战draw2d 之图形填充色(纯色 or 渐变)
- mfc使用不同类型的画刷填充矩形
- 全超实用的Javascript类库和jQuery插件大全之一:图片,地图和图形
- 绘制系统(绘制系统简介,画笔和画刷,渐变系统,坐标系统,绘制文字和图片,图形视图框架)
- VISIO 2010,不规则封闭图形填充方法
- cad巧用插件自定义填充图形
- HTML5 Canvas ( 填充图形的绘制 ) closePath, fillStyle, fill