C#.net 地图控件开发(四) GDI+图形图像编程基础2.
2013-04-10 16:36
363 查看
常用画图对象
在创建了Graphics对象后,就可以用它开始绘图了,可以画线、填充图形、显示文本等等,其中主要用到的对象还有:1
Pen:用来用patterns、colors或者bitmaps进行填充。
2
Color:用来画线和多边形,包括矩形、圆和饼形。
3
Font:用来给文字设置字体格式。
4 Brush:用来描述颜色。
5 Rectangle:矩形结构通常用来在窗体上画矩形。
6 Point:描述一对有序的x,y两个坐标值。
1. Pen类
Pen用来绘制指定宽度和样式的直线。使用DashStyle属性绘制几种虚线,可以使用各种填充样式(包括纯色和纹理)来填充Pen绘制的直线,填充模式取决于画笔或用作填充对象的纹理。
使用画笔时,需要先实例化一个画笔对象,主要有以下几种方法。
用指定的颜色实例化一只画笔的方法如下:
public Pen(Color);
用指定的画刷实例化一只画笔的方法如下:
public Pen(Brush);
用指定的画刷和宽度实例化一只画笔的方法如下:
public Pen(Brush, float);
用指定的颜色和宽度实例化一只画笔的方法如下:
public Pen(Color, float);
实例化画笔的语句格式如下:
Pen pn=new Pen(Color.Blue);
或者Pen pn=new Pen(Color.Blue,100);
Pen常用的属性有以下几个,如下表所示:
Pen常用属性
名称 | 说明 |
Alignment | 获得或者设置画笔的对齐方式。 |
Brush | 获得或者设置画笔的属性。 |
Color | 获得或者设置画笔的颜色。 |
Width | 获得或者设置画笔的宽度。 |
在自然界中,颜色大都由透明度(A)和三基色(R,G,B)所组成。在GDI+中,通过Color结构封装对颜色的定义,Color结构中,除了提供(A,R,G,B)以外,还提供许多系统定义的颜色,如Pink(粉颜色),另外,还提供许多静态成员,用于对颜色进行操作。Color结构的基本属性如下表所示。
颜色的基本属性
名称 | 说明 |
A | 获取此Color结构的alpha分量值,取值(0~255)。 |
B | 获取此Color结构的蓝色分量值,取值(0~255)。 |
G | 获取此Color结构的绿色分量值,取值(0~255)。 |
R | 获取此Color结构的红色分量值,取值(0~255)。 |
Name | 获取此Color结构的名称,这将返回用户定义的颜色的名称或已知颜色的名称(如果该颜色是从某个名称创建的),对于自定义的颜色,将返回RGB值。 |
颜色的基本方法
名称 | 说明 |
FromArgb | 从四个8位ARGB分量(alpha、红色、绿色和蓝色)值创建Color结构。 |
FromKnowColor | 从指定的预定义颜色创建一个Color结构。 |
FromName | 从预定义颜色的指定名称创建一个Color结构。 |
Color clr1 = Color.FromArgb(122,25,255);
Color clr2 = Color.FromKnowColor(KnowColor.Brown);//KnownColor为枚举类型
Color clr3 = Color.FromName("SlateBlue");
在图像处理中一般需要获取或设置像素的颜色值,获取一幅图像的某个像素颜色值的具体步骤如下:
(1)定义Bitmap
Bitmap myBitmap = new Bitmap("c:\\MyImages\\TestImage.bmp");
(2)定义一个颜色变量把在指定位置所取得的像素值存入颜色变量中
Color c = new Color();
c = myBitmap.GetPixel(10,10);//获取此Bitmap中指定像素的颜色。
(3)将颜色值分解出单色分量值
int r,g,b;
r= c.R;
g=c.G;
b=c.B;
3. Font类
Font类定义特定文本格式,包括字体、字号和字形属性。Font类的常用构造函数是public Font(string 字体名,float 字号,FontStyle 字形),其中字号和字体为可选项和public Font(string 字体名,float 字号),其中“字体名”为Font的FontFamily的字符串表示形式。下面是定义一个Font对象的例子代码:
FontFamily fontFamily = new FontFamily("Arial");
Font font = new Font(fontFamily,16,FontStyle.Regular,GraphicsUnit.Pixel);
字体常用属性如下表所示。
字体的常用属性
名称 | 说明 |
Bold | 是否为粗体。 |
FontFamily | 字体成员。 |
Height | 字体高。 |
Italic | 是否为斜体。 |
Name | 字体名称。 |
Size | 字体尺寸。 |
SizeInPoints | 获取此 Font对象的字号,以磅为单位。 |
Strikeout | 是否有删除线。 |
Style | 字体类型。 |
Underline | 是否有下划线。 |
Unit | 字体尺寸单位。 |
Brush类是一个抽象的基类,因此它不能被实例化,我们总是用它的派生类进行实例化一个画刷对象,当我们对图形内部进行填充操作时就会用到画刷,关于画刷在下章中有详细讲解。
5. Rectangle结构
存储一组整数,共四个,表示一个矩形的位置和大小。矩形结构通常用来在窗体上画矩形,除了利用它的构造函数构造矩形对象外,还可以使用Rectangle结构的属性成员,其属性成员如下表所示。
Rectangle结构属性
名称 | 说明 |
Bottom | 底端坐标 |
Height | 矩形高 |
IsEmpty | 测试矩形宽和高是否为0 |
Left | 矩形左边坐标 |
Location | 矩形的位置 |
Right | 矩形右边坐标 |
Size | 矩形尺寸. |
Top | 矩形顶端坐标 |
Width | 矩形宽 |
X | 矩形左上角顶点X坐标 |
Y | 矩形左上角顶点Y坐标 |
//用指定的位置和大小初始化Rectangle类的新实例。
public Retangle(Point,Size);//Size结构存储一个有序整数对,通常为矩形的宽度和高度。
和
public Rectangle(int,int,int,int);
6. Point结构
用指定坐标初始化Point类的新实例。这个结构很像C++中的Point结构,它描述了一对有序的x,y两个坐标值,其构造函数为:public Point(int x,int y);其中x为该点的水平位置;y为该点的水垂直位置。下面是构造Point对象的例子代码:
Point pt1=new Point(30,30);
Point pt2=new Point(110,100);
相关文章推荐
- C#.net 地图控件开发(三) GDI+图形图像编程基础1.
- C#.net 地图控件开发(五) GDI+图形图像编程基础3.
- C#.net 地图控件开发(七) 地图符号,几何图形样式Symbol
- C# .NET开发图形图像程序时提示"GDI+ 中发生一般性错误"
- C#.net 地图控件开发(十) 地图对象Map
- C#.net 地图控件开发(九) 矢量图层与绘制FeatureLayer
- C#在Winform中使用GMap.Net地图开发控件在离线模式下绘制两点路线
- C#.net 地图控件开发(八) 地图要素Feature
- C#.net 地图控件开发(十一) 地图控件MapControl
- C#.net 地图控件开发 (一) 控件坐标与地图坐标
- C#编程基础面试题(.NET开发人员必备)
- C#.net 地图控件开发(二) 地图图层Layer
- C#.net 地图控件开发(十二) 第一阶段总结,附代码示例
- ASP.NET 高级编程基础第六篇—开发原则1
- asp.net控件开发基础(17) --------初识数据绑定控件
- asp.net控件开发基础(4)
- asp.net控件开发基础(20)
- asp.net控件开发基础(8)
- asp.net控件开发基础(9)
- asp.net控件开发基础(3) ----------自定义控件事件处理