编程语言应用

首页 » 常识 » 预防 » CGDI绘图基础
TUhjnbcbe - 2022/7/29 2:13:00

01GDI+概述

GDI+指的是.NETFramework4.0中提供二维图形、图像处理等功能,是构成Windows操作系统的一个子系统,它提供了图形图像操作的应用程序编程接口(API)。使用GDI+可以用相同的方式在屏幕或打印机上显示信息,而无须考虑特定显示设备的细节。GDI+类提供用以绘制的方法,这些关的应用程序。GDI+主要用于在窗体上绘制各种图形图像,可以用于绘制各种数据图形、数学仿真等。GDI+可以在窗体程序中产生很多自定义的图形,便于展示各种图形化的数据。

GDI+就好像是一个绘图仪,它可以将已经制作好的图形绘制在指定的模型中,并可以对图形的颜色、线条粗细、位置等进行设置。

创建Graphics对象

Graphics类是GDI+的核心,Graphics对象表示GDI+绘图表面,提供将对象绘制到显示设备的方法。Graphics与特定的设备上下文关联,是用于创建图形图像的对象。Graphics类封装了绘制直线、曲线、图形、图像和文本的方法,是进行一切GDI+操作的基础类。创建Graphics对象有以下3种方法。

在窗体或控件的Paint事件中创建,将其作为PaintEventArgs的一部分。在为控件创建绘制代码时,通常会使用此方法来获取对图形对象的引用。

在Paint事件中创建Graphics对象。代码如下:

privatevoidForm1_Paint(objectsender,PaintEventArgse)//窗体的Paint事件{Graphicsg=e.Graphics;//创建Graphics对象}

调用控件或窗体的CreateGraphics方法以获取对Graphics对象的引用,该对象表示控件或窗体的绘图画面。如果在已存在的窗体或控件上绘图,应该使用此方法。

在窗体的Load事件中,通过CreateGraphics方法创建Graphics对象。代码如下:

privatevoidForm1_Load(objectsender,EventArgse)//窗体的Load事件{Graphicsg;//声明一个Graphics对象//使用CreateGraphics方法创建Graphics对象g=this.CreateGraphics();}

由从Image继承的任何对象创建Graphics对象,此方法在需要更改已存在的图像时十分有用。

在窗体的Load事件中,通过FromImage方法创建Graphics对象。

代码如下:

privatevoidForm1_Load(objectsender,EventArgse)//窗体的Load事件{Bitmapmbit=newBitmap(

"C:\ls.bmp");//实例化Bitmap类//通过FromImage方法创建Graphics对象Graphicsg=Graphics.FromImage(mbit);}

创建Pen对象

Pen类主要用于绘制线条,或者线条组合成的其他几何形状。Pen类的构造函数如下。

语法如下:

publicPen(Colorcolor,floatwidth)

color::设置Pen的颜色。

width:设置Pen的宽度。

创建一个Pen对象,使其颜色为蓝色,宽度为2。

代码如下:

Penmypen1=newPen(Color.Blue,2);//实例化一个Pen类,并设置其颜色和宽度

创建Brush对象

Brush类主要用于填充几何图形,如将正方形和圆形填充为其他颜色。Brush类是一个抽象基类,不能进行实例化。若要创建一个画笔对象,需使用从Brush派生出的类,如SolidBrush、HatchBrush等,下面对这些派生出的类进行详细介绍。

1SolidBrush类

SolidBrush类定义单色画笔,画笔用于填充图形形状,如矩形、椭圆、扇形、多边形和封闭路径。

语法如下:

publicSolidBrush(Colorcolor)

color:表示此画笔的颜色。

说明

当不再需要返回Graphics时,必须通过调用其Dispose方法来释放它。Graphics只在当前窗口消息期间有效。

创建一个Windows应用程序,通过Brush对象将绘制的矩形填充为红色。代码如下:

privatevoidbutton1_Click(objectsender,EventArgse){Graphicsghs=this.CreateGraphics();//创建Graphics对象Brushmybs=newSolidBrush(Color.Red);//使用SolidBrush类创建一个Brush对象Rectanglert=newRectangle(10,10,,);//绘制一个矩形ghs.FillRectangle(mybs,rt);//用Brush填充Rectangle}

2HatchBrush类

HatchBrush类提供了一种特定样式的图形,用来制作填满整个封闭区域的绘图效果。HatchBrush类位于System.Drawing.Drawing2D命名空间下。

语法如下:

publicHatchBrush(HatchStylehatchstyle.ColorforeColor)

hatchstyle:HatchStyle值之一,表示此HatchBrush所绘制的图案。

foreColor:Color结构,它表示此HatchBrush所绘制线条的颜色。

创建一个Windows应用程序,利用HatchStyle值创建5个长条图示。代码如下:

privatevoidbutton1_Click(objectsender,EventArgse){Graphicsghs=this.CreateGraphics();//创建Graphics对象for(inti=1;i6:i++)//使用for循环{HatchStylehs=(HatchStyle)(5+i);//设置HatchStyle值HatchBrushhb=newHatchBrush(hs,Color.White);//实例化HatchBrush类Rectanglert=newRectangle(10,50*i,50*i,50)//根据i值绘制矩形ghs.FillRestangle(hb,rtl);//填充矩形}}

3LinerGradientBrush类

LinerGradientBrush类提供一种渐变色彩的特效,填满图形的内部区域。

语法如下:

publicLinerGradientBrush(Pointpoint1,Pointpoint2,Colorcolor1,Colorcolor2)

语法中的参数说明如表1所示。

表1参数说明

说明

在使用LinerGradientBrush类时,必须在命名空间中添加System.Drawing.Drawing2D。

创建一个Windows应用程序,通过LinerGradientBrush类绘制线形渐变图形。代码如下:

privatevoidbutton1_Click(objectsender,EventArgse){Pointp1=newPoint(,);//实例化两个Point类Pointp2=newPoint(,);//实例化LinerGradientBrush类,设置其使用黑色和白色进行渐变LinearGradientBrushIgb=newLinearGradientBrush(p1,p2,Color.Black,Color.White);Graphicsghs=this.CreateGraphics();//实例化Graphics类//设置WrapMode属性指示该LinearGradientBrush的环绕模式lgb.WrapMode=WrapMode.TileFlipX;ghs.FillRectangle(lgb,15,15,,);//填充绘制矩形}

技术群:需要进技术群的添加小编

1
查看完整版本: CGDI绘图基础