打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#.net 地图控件开发(四) GDI+图形图像编程基础2.

常用画图对象

在创建了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

获得或者设置画笔的宽度。

 

2.Color结构

在自然界中,颜色大都由透明度(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值。

 

Color结构的基本(静态)方法如下表所示

 颜色的基本方法

名称

说明

FromArgb

从四个8位ARGB分量(alpha、红色、绿色和蓝色)值创建Color结构。

FromKnowColor

从指定的预定义颜色创建一个Color结构。

FromName

从预定义颜色的指定名称创建一个Color结构。

 

Color结构变量可以通过已有颜色构造,也可以通过RGB建立,例如:

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

字体尺寸单位。

 

4.Brush类

Brush类是一个抽象的基类,因此它不能被实例化,我们总是用它的派生类进行实例化一个画刷对象,当我们对图形内部进行填充操作时就会用到画刷,关于画刷在下章中有详细讲解。

 

5. Rectangle结构

存储一组整数,共四个,表示一个矩形的位置和大小。矩形结构通常用来在窗体上画矩形,除了利用它的构造函数构造矩形对象外,还可以使用Rectangle结构的属性成员,其属性成员如下表所示。

 

Rectangle结构属性

名称

说明

Bottom

底端坐标

Height

矩形高

IsEmpty

测试矩形宽和高是否为0

Left

矩形左边坐标

Location

矩形的位置

Right

矩形右边坐标

Size

矩形尺寸.

Top

矩形顶端坐标

Width

矩形宽

X

矩形左上角顶点X坐标

Y

矩形左上角顶点Y坐标

Retangle结构的构造函数有以下两个:

//用指定的位置和大小初始化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);

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#GDI+编程基础(二)
C# GDI 绘图高级编程
设备环境(DC)(3) VC
HTML字体(Fonts)
代码学习群简易教程(4)
类总纲
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服