打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C#.net 地图控件开发(三) GDI+图形图像编程基础1.

GDI+绘图基础

       编写图形程序时需要使用GDI(Graphics Device Interface,图形设备接口),从程序设计的角度看,GDI包括两部分:一部分是GDI对象,另一部分是GDI函数。GDI对象定义了GDI函数使用的工具和环境变量,而GDI函数使用GDI对象绘制各种图形,在C#中,进行图形程序编写时用到的是GDI+(Graphice Device Interface Plus图形设备接口)版本,GDI+是GDI的进一步扩展,它使我们编程更加方便。

概述

        GDI+是微软在Windows 2000以后操作系统中提供的新的图形设备接口,其通过一套部署为托管代码的类来展现,这套类被称为GDI+的“托管类接口”,GDI+主要提供了以下三类服务:

(1) 二维矢量图形:GDI+提供了存储图形基元自身信息的类(或结构体)、存储图形基元绘制方式信息的类以及实际进行绘制的类。

(2) 图像处理:大多数图片都难以划定为直线和曲线的集合,无法使用二维矢量图形方式进行处理。因此,GDI+为我们提供了Bitmap、Image等类,它们可用于显示、操作和保存BMP、JPG、GIF等图像格式。

(3) 文字显示:GDI+支持使用各种字体、字号和样式来显示文本。

我们要进行图形编程,就必须先讲解Graphics类,同时我们还必须掌握Pen、Brush和Rectangle这几种类。

GDI+比GDI优越主要表现在两个方面:第(一)GDI+通过提供新功能(例如:渐变画笔和alpha混合)扩展了GDI的功能;第(二)修订了编程模型,使图形编程更加简易灵活。

Graphics类

        Graphics类封装一个GDI+绘图图面,提供将对象绘制到显示设备的方法,Graphics与特定的设备上下文关联。画图方法都被包括在Graphics类中,在画任何对象(例如:Circle,Rectangle)时,我们首先要创建一个Graphics类实例,这个实例相当于建立了一块画布,有了画布才可以用各种画图方法进行绘图。

绘图程序的设计过程一般分为两个步骤:(一)创建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类的FromHandle静态方法

Graphics g = Graphics.FromHandle(this.Handle);

 

方法四、调用Graphics类的FromImage静态方法

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

例如:

//名为“g1.jpg”的图片位于当前路径下

Image img = Image.FromFile("g1.jpg");//建立Image对象

Graphics g = Graphics.FromImage(img);//创建Graphics对象

 

 

Graphics类的方法成员

有了一个Graphics的对象引用后,就可以利用该对象的成员进行各种各样图形的绘制,下表列出了Graphics类的常用方法成员。

Graphics类常用方法

名称

说明

DrawArc

画弧。

DrawBezier

画立体的贝尔塞曲线。

DrawBeziers

画连续立体的贝尔塞曲线。

DrawClosedCurve

画闭合曲线。

DrawCurve

画曲线。

DrawEllipse

画椭圆。

DrawImage

画图像。

DrawLine

画线。

DrawPath

通过路径画线和曲线。

DrawPie

画饼形。

DrawPolygon

画多边形。

DrawRectangle

画矩形。

DrawString

绘制文字。

FillEllipse

填充椭圆。

FillPath

填充路径。

FillPie

填充饼图。

FillPolygon

填充多边形。

FillRectangle

填充矩形。

FillRectangles

填充矩形组。

FillRegion

填充区域。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C#GDI+编程基础(一:Graphics画布类)
《Visual Basic 2005 程序设计》第9章 GDI+绘图
c# GDI 简单绘图(一)
GDI+编程基础(一)GDI+ Vs GDI
浅析C#中图形编程
C# winform 清除由GDI绘制出来的所有线条或图形
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服