当前位置:首页 期刊杂志

基于GDI+的简易画图程序设计与实现

时间:2024-05-17

罗倩

(青岛理工大学琴岛学院 计算机工程系,山东 青岛 266106)

1 相关技术介绍

1.1 GDI 技术

GDI 是位于应用程序与不同硬件之间的中间层,这种结构让程序员从直接处理不同硬件的工作中解放出来,把硬件间的差异交给了GDI 处理。GDI 通过将应用程序与不同输出设备特性相隔离,使Windows 应用程序能够毫无障碍地在Windows 支持的任何图形输出设备上运行。

Windows 系统是用来给应用程序提供设备独立性的工具,它是windows 系统为了处理输出设备而使用的一种内部数据结构,设备环境是windos 程序,驱动程序,和输出设备(如打印机,绘图仪)之间的纽带,GDI 是一组C++类,它在驱动程序的协助下把数据描绘在硬件上,它位于应用程序与硬件之间,把数据从一方传到另一方。

1.2 GDI+技术

GDI+是GDI 的下一个版本,它进行了很好的改进,并且易用性更好。GDI 的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,也就是说,GDI 是一个中低层API,你还可能要知道设备,而GDI+是一个高层的API,你不必知道设备。例如你如果要设置某个控件的前景和背景色,只需设置BackColor 和ForeColor 属性。

1.3 本文采用的技术

GDI+与GDI 相比,增加了下列新的特性:渐变画刷、样条曲线、独立的路径对象、矩阵和矩阵变换、Alpha 通道合成运算和多图片格式的支持,除了上述新特性外,GDI+还将支持重新着色、色彩修正、消除走样、元数据以及Graphics 容器等特性。

而.NET 可以很好的支持GDI+编程,可以充分利用其优越性,本文在设计与实现简易画图程序时,采用GDI+编程技术。

2 系统的设计

2.1 系统总体设计方案

a.对整个界面进行布局。b.实现绘图工具的功能。c.实现颜色拾取的功能。d.实现菜单功能。e.实现手动调节画布大小的功能。f.测试。

2.2 系统结构选择

目前,常用的系统体系结构有两种:C/S 与B/S。采用B/S 结构,客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重。采用C/S 结构时,客户端和服务器端都能够处理任务,这虽然对客户机的要求较高,但因此可以减轻服务器的压力。

画图程序对计算机的性能要求比较高,占用大量的内存,且要求稳定性好。本文中的系统采用C/S 结构,这样可以充分利用客户端的功能,为服务器减轻负担。

2.3 系统模块设计

画图程序,主要包括四大模块:文件功能(打开、关闭、保存等)、工具箱(线条、铅笔、矩形、空心园、实心圆、橡皮擦等)、调色板(各种颜色)、图像(清除图像、图像属性),软件启动时,为一张空白画布,我们可以直接在画布上绘画,也可以通过菜单中的“打开”,导入一张图片,然后我们就可以在这张图片上进行绘制。简单结构,如图1 所示:

图1 画图程序模块图

图2 界面设计图

2.4 系统界面设计

系统界面遵循简洁、紧凑、美观和易于使用的原则,主界面分成了四个区:菜单区(上侧)、工具箱区(左上侧)、调色板区(左下侧)、状态栏(下侧)、中心区(中间),如图2 所示:

3 系统的实现

3.1 编程语言的选择

C#语言是微软公司提供一门编程语言,方便易用,且功能强大,适合各类项目的开发,对于编写WinForm 程序,是一种不错的选择。本文在开发画图程序时,采用了C#语言。因为使用C#语言,可以通过引入命名空间,调用强大的GDI+的功能,从而可以绘制出漂亮、功能强大稳定的图像。

3.2 关键技术与代码分析

3.2.1 画板、画笔、画刷介绍

要实现画图功能,首要任务是建立画板,Graphics 主要是用来建立画板对象,本文将picture 控件作为画板,创建画板的语法为:

Graphics g=picture1.CreateGraphics();//创建画板

g.Clear(Color.Red);//将画板染成为红色

g.Dispose();//把画板对象从内存中清除掉

建立画板后,下一步的任务就是创建画笔,Pen 主要是用来建立画笔对象,创建画笔的语法如下:

Pen p=new Pen(Color.Blue,2);//定义了一个蓝色,像素为2 的画笔

有了画笔,下一步就是定制画刷,Brush 对象是画笔对象,用来绘制实心、渐层的图形,使得图案显得比较有质感。最简单的画笔仅指定了区域用纯色来填充。这种画笔由System.Drawing.Brush类的实例表示,该实例可以如下构造:Brush b=SolidBrush(Color.Orange);3.2.2 清除图像

清除图像的方法是,把整个画布颜色填充为白色,部分代码如下:

3.2.3 画布大小调整

放置一个picture1 控件,将它固定在主画板的右下角,然后改变鼠标进入时的Cursor 为箭头形状,设置鼠标按下移动时的事件,让该picturebox1 跟随鼠标移动。当鼠标松开时,将主画板的右下角坐标调整为picturebox1 的坐标,部分代码:

3.3 运行界面分析

图3 画图程序主界面

程序启动后,进入程序的主运行界面,如图3 所示。利用左侧工具箱中的工具,以及颜色工具箱,可以白色画板区域中,绘制线条、矩形、椭圆,并可以改变线条的颜色,给矩形和椭圆填充颜色;当绘制图形,出现错误时,使用工具箱中的橡皮擦,除掉错误的地方,以便重新绘制。另外,程序也提供了对图片像素的大小的改变,如将图片的大小从1024*768,改变成800*600,方便使用。

4 结束语

GDI+是WinXP 操作系统的一个子集,具有十分强大的图形接口,通过它可以绘制出功能强大的图形,并可以对图形进行各种处理,以满足图像处理的需要。使用GDI+可以很方便的开发出一个画图软件,例如操作系统的画板。本文使用GDI+技术,很好的实现了一个简易的画图程序,简单实用。

[1]王东明.Visual C#.NET 程序设计与应用开发.清华大学出版社,2008.5

[2].程不功.ASP.NET2.0 动态网站开发教程.清华大学出版社,2006.4

[3].邵良杉.ASP.NET3.5(C#)实践教程.清华大学出版社,2009.5

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!