很长一段时间没有更新技术博客了,最近在用C#开发Kinect的程序。所以跟大家分享一下自己一些方面学习和认知。
编写图形程序时需要使用GDI(Graphics Device Interface,图形设备接口),从程序设计的角度看,GDI包括两部分:一部分是GDI对象,另一部分是GDI函数。GDI对象定义了GDI函数使用的工具和环境变量,而GDI函数使用GDI对象绘制各种图形,在C#中,进行图形程序编写时用到的是GDI+(Graphics Device Interface Plus图形设备接口)版本,GDI+是GDI的进一步扩展,它使我们编程更加方便。
C#中的GDI+就相当于java中的Swing控件,是编写图形界面必不可缺的一个接口。GDI+绘图最大的方便得益于C#的可视化编程,所有的控件只需要自己Drag,然后Place,最后Cilck添加监听方法。真的是too young too simple。
绘图的时候要用到Graphics类,所以首先介绍一下Graphics画布
我们首先要创建一个Graphics类实例,这个实例相当于建立了一块画布,有了画布才可以用各种画图方法进行绘图。这个过程其实与java中Swing控件获取画布形式上差不多。
绘图程序的设计过程一般分为两个步骤:(一)创建Graphics对象;(二)使用Graphics对象的方法绘图、显示文本或处理图像。
通常我们使用下述三种方法来创建一个Graphics对象。
方法一、利用控件或窗体的Paint事件中的PainEventArgs
在窗体或控件的Paint事件中接收对图形对象的引用,作为PaintEventArgs(PaintEventArgs指定绘制控件所用的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方法
调用某控件或窗体的CreateGraphics方法以获取对Graphics对象的引用,该对象表示该控件或窗体的绘图图面。如果想在已存在的窗体或控件上绘图,通常会使用此方法。
例如:
Graphics g = this.CreateGraphics();
方法三、调用Graphics类的FromImage静态方法
由从Image继承的任何对象创建Graphics对象。在需要更改已存在的图像时,通常会使用此方法。
例如:
//名为“g1.jpg”的图片位于当前路径下 Image img = Image.FromFile("g1.jpg");//建立Image对象 Graphics g = Graphics.FromImage(img);//创建Graphics对象
一般来说,个人第二种方法用的比较多。
再就是常用的画图对象
Pen:用来用patterns、colors或者bitmaps进行填充。
Color:用来画线和多边形,包括矩形、圆和饼形。
Font:用来给文字设置字体格式。
Brush:用来描述颜色。
Rectangle:矩形结构通常用来在窗体上画矩形。
Point:描述一对有序的x,y两个坐标值。
每个画图对象的具体方法在此就不详细说明了,详细内容在开发文档里面。
基本图形的绘制实例
绘制渐变的矩形
代码
/// <summary> /// 重载Form窗体的OnPaint函数 /// </summary> /// <param name="e"></param> protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; //定义矩形区域 Rectangle rect = new Rectangle(50, 30, 100, 100); //定义画刷对象 LinearGradientBrush lBrush = new LinearGradientBrush(rect, Color.Red, Color.Yellow, LinearGradientMode.BackwardDiagonal); //填充矩形 g.FillRectangle(lBrush, rect); }
其他图形也都可以调用系统提供的绘图方法实现
如DrawArc,DrawLine,DrawEllipse,DrawString,FillPath等等,都可以尝试使用一下
如果以上介绍你对C#中的GDI+编程还不懂,那么来下载个开发文档吧。鉴于以前上传的代码小伙伴们都不能下载。估计是被CSDN收购后冷落其发展的原因,所以以后代码资源都会挂到CSDN上,并附上地址。
GDI+开发文档已经上传到:
http://download.csdn.net/detail/u011458382/6336381
希望大家多多支持和指正。
相关推荐
综上所述,GDI+ SDK为C#开发者提供了一个强大且易用的图形编程框架,通过Graphics对象和Pen对象等工具,可以轻松地创建和操作图形,实现丰富的用户界面。掌握GDI+的使用,对于开发Windows应用程序来说至关重要。
在本文中,我们将深入探讨C#中的GDI+技术,特别是在绘制图形方面,特别是如何实现分层、拖放、缩放以及填充等高级功能。GDI+是.NET框架中的一个核心部分,它提供了丰富的图形绘制功能,使得程序员能够创建出交互式且...
C# GDI+ 是一种强大的图形处理库,用于在Windows应用程序中创建和操作图形。GDI+ 是微软.NET Framework的一部分,提供了丰富的功能,包括绘制线条、曲线、形状、文本、图像处理以及更多。本示例提供了全面的C# GDI+...
本教程主要讲解了使用C#进行图形图像编程的基础知识,包括GDI+绘图基础、C#图像处理基础和简单的图像处理技术。 GDI+绘图基础 ------------- GDI+是微软在Windows 2000以后操作系统中提供的新的图形设备接口,它使...
【C# GDI+绘图高级编程】是关于在C#中利用GDI+库进行图形绘制的高级技术探讨。GDI+是Windows操作系统中的一个图形设备接口,它为开发者提供了一个抽象层,屏蔽了不同硬件设备之间的差异,使得代码可以在各种设备上...
1. GDI+基础:介绍GDI+的架构及其在.NET框架中的作用,让读者了解如何在C#程序中引用和使用GDI+库。 2. 基本图形绘制:讲解如何使用GDI+绘制基本图形,例如点、线、矩形、圆形、多边形等,以及如何使用画刷、画笔、...
在本文中,我们将深入探讨如何使用C#中的GDI+库来实现网格绘制,并展示相关的基础知识和实践应用。GDI+(Graphics Device Interface Plus)是.NET Framework提供的一种图形处理接口,它为开发者提供了丰富的图形绘制...
总的来说,"C#+gdi+平滑滚动控件"是一个展示如何利用C#语言和GDI+图形库实现高级用户界面功能的实例。通过深入研究和理解这个控件的实现,开发者不仅可以掌握自定义控件的创建技巧,还能了解到如何用GDI+实现平滑...
一、GDI+基础 1. 图形对象:GDI+提供了多种图形对象,如Graphics、Pen、Brush、Font和Image等。Graphics对象用于绘制,Pen用于线条和边框,Brush用于填充,Font用于文本样式,Image则包括位图、图标和其他图像类型...
在IT领域,GDI+(Graphics Device Interface ...实践和理解YLScsDrawing中的代码,将有助于你深化对GDI+的理解,并提升你在3D图形编程方面的能力。无论你是初学者还是有经验的开发者,这都是一次值得投入的学习之旅。
GDI+(Graphics Device Interface Plus)是.NET Framework中的一部分,为开发者提供了强大的图形处理能力,使得在C#中进行图形设计和图像操作变得可能。本篇文章将深入探讨C#中的GDI+技术以及如何使用它来实现类似...
GDI+程序设计是一门专门研究如何利用GDI+进行图形编程的技术,本书《GDI+程序设计》由Eric White所著,主要针对中高级C#程序员,旨在指导读者如何使用GDI+编写Windows Forms和Web Forms自定义控件。 书中详细介绍了...
1. **GDI+基础**:GDI+是.NET Framework的一部分,提供了一组接口和类,允许程序员进行复杂的图形操作。它包含了绘制线条、曲线、填充形状、绘制文本等方法,通过`System.Drawing`命名空间中的类来实现。 2. **绘图...
在.NET Framework中,C#提供了一种强大的图形接口——GDI+(Graphics Device Interface Plus),用于在Windows应用程序中创建和处理图形元素。本教程将深入探讨如何利用GDI+来扩展标准的ToolTip控件,使其拥有更丰富...
通过研究这个项目,开发者不仅可以学习到C# .NET编程,还能深入理解GDI+的图形绘制原理和技巧,这对于想要创建具有复杂图形界面或自定义绘图功能的应用来说是非常有价值的。同时,源码中的组态功能也涉及到了动态...
1. **GDI+基础** GDI+是Windows应用程序开发中的核心组件,它提供了大量的类和方法来处理图形、文本、图像等。在C#中,我们主要会用到`System.Drawing`命名空间下的类,如`Graphics`、`Pen`、`Brush`和`Image`等。 ...
本书适合于开发GDI+图形应用程序的初、中级程序员阅读,书中给出了大量用C#语言编写的可重用示例代码,可以使读者更快地掌握书中所介绍的各种知识和概念。本书也可以作为大专院校相关课程的重要辅导教材。 【编辑...
在.NET框架中,C#语言提供了丰富的功能来支持图形绘制,其中包括了对GDI+(Graphics Device Interface Plus)的利用。GDI+是Windows应用程序开发中的一个...学习并熟练掌握GDI+绘图,将极大地提升你的C#图形编程能力。