一个典型的Windows窗体应用程序生命期内可能显示的其他窗体的父窗体或所有者,主菜单、工具栏、状态栏等都是显示于该窗体内。当主窗体被关闭时,程序应该随即被退出。
GDI+是与.NET Framework中的图形设备接口进行交互的入口。它使程序开发人员可以编写出与设别无关的受控应用程序,它的设计目的是要提供较高的性能、方便的使用以及对多语言的支持。如果要编写与监视器、打印机或文件等图形设别进行交互的.NET应用程序,那么就必须使用GDI+。
GDI+使得应用程序开发人员在输出屏幕和打印机信息的时候,无需考虑具体显示设备的细节,他们只需调用GDI+库输出的类的一些方法即可完成图形操作,真正的绘图工作由这些方法交给特定的设备驱动程序来完成,GDI+使得图形硬件和应用程序相互隔离,从而使开发人员编写与设备无关的应用程序变得非常容易。
GDI+在GDI的基础上提供了明显的改进。最主要的特点是在GDI+中,没有了句柄或设备上下文的概念,它被Graphics对象取代。Graphics类提供了绘制不同图形对象的方法和属性,而且更易于使用。
GDI+是微软在windows 2000以后操作系统中提供的新的图形设备接口,其通过一套部署为托管代码的类来展现,这套类被称为GDI+的“托管类接口”,GDI+主要提供了三类服务:二文矢量图形:GDI+提供了存储图形基元自身信息的类(或结构体)、存储图形基元绘制方式信息的类以及实际进行绘制的类。图像处理:大多数图片都难以划定为直线和曲线的集合,无法使用二文矢量图形方式进行处理。因此,GDI+提供了Bitmap、Image等类,可用于显示、操作和保存BMP、G、GIF等图像格式。文字显示支持使用各种字体、字号和样式来显示文本。
Graphics类封装了一个GDI+绘图图面,提供将对象绘制到显示设备的方法。绘图程序的一般步骤为:创建Graphics对象;使用Graphics对象的方法绘图、显示文本或处理对象。通常有三种方法创建Graphics对象:
方法一:窗体的Paint事件的响应方法
Private void form1_Paint(object sender,PaintEventArgs e)
{
Graphics g = e.Graphics;
}
也可以用重载窗体的OnPaint方法
Protected override void OnPaint(PaintEventArgs e)
{
Graphics g = e.Graphics;
}
在课题研究中,采用的是窗体的Paint事件的响应方法
方法二:调用控件或窗体的CreateGraphics方法。
Graphics g = this.CreateGraphics();
此时以this所代表的窗体为画布,以可以使用其他控件对象的引用,创建以控件对象为画布的Graphics对象。
方法三:建立Image对象,名为“g1.jpg”的图片位于当前路径下
Image img = Image.FormFile(“g1.jpg”);
创建Graphics对象
Graphics g = Graphics.FromImage(img);
此时以文件“g1.jpg”为画布,使用g进行绘制图形时,其图形是绘制在文件“g1.jpg”上的。
在创建了Graphics对象后,就可以进行绘图了。可以画线、填充图形、显示文本等,主要用到的对象还有:
Color:表示ARGB颜色
Rectangle:存储一组整数,共四个,表示一个矩形的位置和大小
Point:表示在二文平面中定义点的、整数X和Y坐标的有序对。
GDI+支持的图像格式有BMP、GIF、JEPG、EXIF、PNG、TIFF、ICON、WMF、EMF等,几乎涵盖了所有的常用图像格式,使用GDI+可以显示和处理多种格式的图像文件。
课题中使用了GDI+提供的Image、Bitmap等类来进行图像处理、为进行图像格式的加载、变换和保存等操作提供了方便。
Image类:此类是为Bitmap类提供功能的抽象基类。
Bitmap类:封装GDI+位图,此位图由图形图像及其属性的像素数据组成,Bitmap是用于处理由像素数据定义的图像的对象。
上一篇:VB基于图像处理的烟火药燃烧粒子测速
下一篇:上海婴幼儿产品市场分析及营销策略研究

基于Apriori算法的电影推荐

PHP+IOS的会议管理系统的设计+ER图

数据挖掘在电子商务中的应用

数据挖掘的主题标绘数据获取技术与实现

基于PageRank算法的网络数据分析

基于神经网络的验证码识别算法

基于网络的通用试题库系...

志愿者活动的调查问卷表

医院财务风险因素分析及管理措施【2367字】

10万元能开儿童乐园吗,我...

AT89C52单片机的超声波测距...

承德市事业单位档案管理...

中国学术生态细节考察《...

国内外图像分割技术研究现状

C#学校科研管理系统的设计

公寓空调设计任务书

神经外科重症监护病房患...