GDI+图形图像编程教程

更新时间:2023-07-08 10:54:40 阅读: 评论:0

超全面的 GDI+图形图像编程教程

GDI+绘图基础
编写图形程序时需要使用GDI(Graphics Device Interface,图形设备接口)
从程序设计的角度看,GDI包括两部分:GDI对象和GDI函数。GDI对象定义了GDI函数使用的工具和环境变量;而GDI函数使用GDI对象绘制各种图形。
C#中,进行图形程序编写时用到的是GDI+(Graphics Device Interface Plus,图形设备接口)版本,GDI+GDI的进一步扩展,它使我们编程更加方便。
1 GDI+概述
GDI+是微软在Windows 2000以后操作系统中提供的新的图形设备接口,其通过一套部署为托管代码的类来实现,这套类被称为GDI+的“托管类接口”。
GDI+主要提供了一下三类服务:
1.二维矢量图形:GDI+提供了存储图形基元自身信息的类(或结构体)、存储图形基元绘制方式信息的类以及实际进行绘制的类。
2.图像处理:大多数图片都难以划定为直线和曲线的集合,无法使用二维矢量图形方式进行处理。因此,GDI+为我们提供了BitmapImage等类,它们可用于显示、操作和奥村BMPJPGGIF等图像格式。
3.文字显示:GDI+支持使用各种字体、字号和样式来显示文本。
我们要进行图形编程,就必须先讲解Graphics类,同时我们还必须掌握PenBrushRectangle这几种类。
GDI+GDI优越主要表现在两个方面:
1.GDI+通过提供新功能(例如:渐变画笔和Alpha混合)扩展了GDI的功能;
2.修订了编程模型,是图形编程更加简易灵活。
2 Graphics
Graphics成熟英文类封装一个GDI+绘图图面,提供将对象绘制到现实设备的方法,Graphics与特定的设备上下文关联。
画图方法都被包括在Graphics类中国,在画任何对象(例如:Circle Rectangle)时,我们首先要创建一个Graphics类实例,这个实例相当于建立了一块画布,有了画布才可以用各种画图方法进行绘图。
绘图程序的设计过程一般分为两个步骤:1.创建Graphics2.使用Graphics对象的方法绘图、显示文本或处理图像。
通常我们使用下述三种方法来创建一个Graphics对象:
方法一:利用控件或窗体的Paint事件中的PaintEventArgs
在窗体或控件的Paint事件中接受对图形对象的引用,作为PaintEventArgs(PaintEventArgs指定绘制控件所用的Graphics)的一部分,在为控件创建绘制代码时,通常会使用此方法来获取对图形对象的引用。例如:
创建Graphics对象的两种方法
1. // 窗体的Paint事件的响应方法 
2. private void Frm_Demo_Paint(object nder, PaintEventArgs e) 
3.
4. hazing    Graphics _Graphics = e.Graphics; 
5.
6.  
7. // 也可以直接重载控件或窗体的OnPaint方法 
8. protected override void OnPaint(PaintEventArgs e) 
9.
10.     Graphics _Graphics = e.Graphics; 
11.
12.  
13. 创建Graphics对象的两种方法 
Paint事件在重绘控件时发生。
方法二:调用某控件或窗体的CreateGraphics方法
调用某控件或窗体的CreateGraphics方法以获取对Graphics对象的引用,该对象表示该控件或窗体的绘图图面。
如果想在已存在的窗体或控件上绘图,通常会使用此方法,例如:
1. 1 Graphics _Graphics = this.CreateGraphics();    // 在当前窗体上创建Graphics对象 
方法三:调用Graphics类的FromImage静态方法
由从Image集成的任何对象创建Graphics对象。在需要更改已存在的图像时,通常会使用此方法。例如:
使用Graphics.FromImage()方法 创建Graphics对象
1. Image img = Image.FromFile("孤影.jpg");   // 建立Image对象 
2. Graphics _Graphics = Graphics.FromImage(img);   // 创建Graphics对象 
2.1 Graphics类的方法成员
有了一个Graphics的对象引用后,就可以利用该对象的成员进行各种各样图形的绘制,下面表格列出了Graphicsnovation类的常用方法成员:
嗤笑
Graphics类常用方法成员
名称
说明
名称
说明
DrawArc
画弧
DrawBezier
画立体的贝尔塞曲线
DrawBeziers
画连续立体的贝尔塞曲线
DrawClodCurve
画闭合曲线
DrawCurve
画曲线
DrawEllip
画椭圆
DrawImage
画图像
DrawLine
画线
DrawPath
通过路径画线和曲线
DrawPie
画饼形
DrawPolygon
画多边形
DrawRectangle
画矩形
DrawString
绘制文字
FillEllip
填充椭圆
FillPath
填充路径
FillPie
填充饼图
FillPolygon
填充多边形
FillRectangle
填充矩形
FillRectangles
填充矩形组
FillRegion
填充区域
中,GDI+的所有绘图功能都包括在SystemSystem.DrawimgSystem.Drawimg.ImagingSystem.Drawimg.Drawimg2DSystem.Drawimg.Text等命名空间中,因此开始用GDI+类之前,需要先引用相应的命名空间。
2.2 引用命名空间
C#应用程序中使用using命令引用给定的命名空间或类,下面是一个C#应用程序引用命名空间的例子:
引用命名空间
1. using System; 
2. using System.Collections.Generic; 
3. using System.Data; 
4. using System.ComponentModel; 
5. using System.Drawing; 
6. using System.Drawing.Drawing2D; 
7. using System.Drawing.Imaging; 
8.  
9. 引用命名空间 
3 常用画图对象
在创建了new york timesGraphics对象后,就可以用它开始绘图了,可以画线、填充图形、显示文本等等,其中主要用到的对象还有:
Pen:用来用patternscolors或者bitmaps进行填充
Color:用来画线和多边形,包括矩形、圆和饼形
Font:用来给文字设置字体格式
menu是什么意思
Brush:用来描述颜色
Rectangle:矩形结构通常用来在窗体上画矩形
Point:描述一对有序的x,y两个坐标值
3.1 Pen
Pen类用来绘制指定宽度和样式的直线。使用DashStyle属性绘制几种虚线,可以使用各种各样填充样式(包括纯色和纹理)来填充Pen绘制的直线,填充模式取决于画笔或用作填充对象的纹理。
使用画笔时,需要先实例化一个画笔对象,主要有以下几种方法:
实例化画笔对象
1. // 用指定的颜色实例化一只画笔 
2. public Pen(Color); 
3.  
manage是什么意思
4. // 用指定的画刷实例化一只画笔 
5. public Pen(Brush); 
6.  
7. // 用指定的画刷和宽度实例化一只画笔 
8. public Pen(Brush, float); 
9.  
10. // 用指定的颜色和宽度实例化一只画笔 
11. public Pen(Color, float); 
12.  
13. // 大学英语三级真题实例化画笔格式如下: 
14. Pen pen = new Pen(Color.Blue); 
15. // 或者: 
16. Pen pen = new Pen(Color.Blue, 100); 
17.  
18. 实例化画笔对象match是什么意思英语 
Pen常用的属性如下:
Pen常用属性
名称
说明
名称
说明
Alignment
艾薇儿哪首歌好听
获得或者设置画笔的对齐方式
Brush
获得或者设置画笔的属性
Color
获得或者设置画笔的颜色
Width
获得或者设置画笔的宽度
3.2 Color结构

本文发布于:2023-07-08 10:54:40,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/1085343.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:图形   对象   画笔   使用
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图