您的位置:首页 > 编程语言 > C#

C# 学习笔记二(图形绘制基础2 常用画图对象)

2012-10-16 12:39 465 查看

常用画图对象

在创建了Graphics对象后,就可以用它开始绘图了,可以画线、填充图形、显示文本等等,其中主要用到的对象还有:

Pen:用来用patterns、colors或者bitmaps进行填充。
Color:用来画线和多边形,包括矩形、圆和饼形。
Font:用来给文字设置字体格式。
Brush:用来描述颜色。
Rectangle:矩形结构通常用来在窗体上画矩形。
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(粉颜色),另外,还提供许多静态成员,用于对颜色进行操作。

颜色的基本属性

名称

说明

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结构变量可以通过已有颜色构造,也可以通过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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: