电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOCX文档下载
分享到微信 分享到微博 分享到QQ空间

C__GDI+编程教程

  • 资源ID:457424627       资源大小:979.61KB        全文页数:38页
  • 资源格式: DOCX        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

C__GDI+编程教程

第7章 C#图形图像编程基础本章主要介绍使用C#进行图形图像编程基础,其中包括GDI+绘图基础、C#图像处理基础以及简单的图像处理技术。7.1 GDI+绘图基础编写图形程序时需要使用GDI(Graphics Device Interface,图形设备接口),从程序设计的角度看,GDI包括两部分:一部分是GDI对象,另一部分是GDI函数。GDI对象定义了GDI函数使用的工具和环境变量,而GDI函数使用GDI对象绘制各种图形,在C#中,进行图形程序编写时用到的是GDI+(Graphice Device Interface Plus图形设备接口)版本,GDI+是GDI的进一步扩展,它使我们编程更加方便。7.1.1 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的功能;第(二)修订了编程模型,使图形编程更加简易灵活。7.1.2 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类的FromImage静态方法由从Image继承的任何对象创建Graphics对象。在需要更改已存在的图像时,通常会使用此方法。例如:/名为“g1.jpg”的图片位于当前路径下Image img = Image.FromFile("g1.jpg");/建立Image对象Graphics g = Graphics.FromImage(img);/创建Graphics对象Graphics类的方法成员有了一个Graphics的对象引用后,就可以利用该对象的成员进行各种各样图形的绘制,表7.1列出了Graphics类的常用方法成员。表7.1 Graphics类常用方法名称说明DrawArc画弧。DrawBezier画立体的贝尔塞曲线。DrawBeziers画连续立体的贝尔塞曲线。DrawClosedCurve画闭合曲线。DrawCurve画曲线。DrawEllipse画椭圆。DrawImage画图像。DrawLine画线。DrawPath通过路径画线和曲线。DrawPie画饼形。DrawPolygon画多边形。DrawRectangle画矩形。DrawString绘制文字。FillEllipse填充椭圆。FillPath填充路径。FillPie填充饼图。FillPolygon填充多边形。FillRectangle填充矩形。FillRectangles填充矩形组。FillRegion填充区域。在.NET中,GDI+的所有绘图功能都包括在System、System.Drawing、System.Drawing.Imaging、System.Drawing.Darwing2D和System.Drawing.Text等命名空间中,因此在开始用GDI+类之前,需要先引用相应的命名空间。2引用命名空间在C#应用程序中使用using命令已用给定的命名空间或类,下面是一个C#应用程序引用命名空间的例子:using System;using System.Collections.Generic;using System.Data;using System.ComponentModel;using System.Drawing;using System.Drawing.Drawing2D;using System.Drawing.Imaging;7.1.3 常用画图对象在创建了Graphics对象后,就可以用它开始绘图了,可以画线、填充图形、显示文本等等,其中主要用到的对象还有:l Pen:用来用patterns、colors或者bitmaps进行填充。l Color:用来画线和多边形,包括矩形、圆和饼形。l Font:用来给文字设置字体格式。l Brush:用来描述颜色。l Rectangle:矩形结构通常用来在窗体上画矩形。l Point:描述一对有序的x,y两个坐标值。1Pen类Pen用来绘制指定宽度和样式的直线。使用DashStyle属性绘制几种虚线,可以使用各种填充样式(包括纯色和纹理)来填充Pen绘制的直线,填充模式取决于画笔或用作填充对象的纹理。使用画笔时,需要先实例化一个画笔对象,主要有以下几种方法。用指定的颜色实例化一只画笔的方法如下:public Pen(Color);用指定的画刷实例化一只画笔的方法如下:public Pen(Brush);用指定的画刷和宽度实例化一只画笔的方法如下:public Pen(Brush, float);用指定的颜色和宽度实例化一只画笔的方法如下:public Pen(Color, float);实例化画笔的语句格式如下:Pen pn=new Pen(Color.Blue);或者Pen pn=new Pen(Color.Blue,100);Pen常用的属性有以下几个,如表7.2所示:表7.2 Pen常用属性名称说明Alignment获得或者设置画笔的对齐方式。Brush获得或者设置画笔的属性。Color获得或者设置画笔的颜色。Width获得或者设置画笔的宽度。2Color结构在自然界中,颜色大都由透明度(A)和三基色(R,G,B)所组成。在GDI+中,通过Color结构封装对颜色的定义,Color结构中,除了提供(A,R,G,B)以外,还提供许多系统定义的颜色,如Pink(粉颜色),另外,还提供许多静态成员,用于对颜色进行操作。Color结构的基本属性如表7.3所示。表7.3 颜色的基本属性名称说明A获取此Color结构的alpha分量值,取值(0255)。B获取此Color结构的蓝色分量值,取值(0255)。G获取此Color结构的绿色分量值,取值(0255)。R获取此Color结构的红色分量值,取值(0255)。Name获取此Color结构的名称,这将返回用户定义的颜色的名称或已知颜色的名称(如果该颜色是从某个名称创建的),对于自定义的颜色,将返回RGB值。Color结构的基本(静态)方法如表7.4所示表7.4 颜色的基本方法名称说明FromArgb从四个8位ARGB分量(alpha、红色、绿色和蓝色)值创建Color结构。FromKnowColor从指定的预定义颜色创建一个Color结构。FromName从预定义颜色的指定名称创建一个Color结构。Color结构变量可以通过已有颜色构造,也可以通过RGB建立,例如:Color clr1 = Color.FromArgb(122,25,255);Color clr2 = Color.FromKnowColor(KnowColor.Brown);/KnownColor为枚举类型Color clr3 = Color.FromName("SlateBlue");在图像处理中一般需要获取或设置像素的颜色值,获取一幅图像的某个像素颜色值的具体步骤如下:(1)定义BitmapBitmap myBitmap = new Bitmap("c:MyImagesTestImage.bmp");(2)定义一个颜色变量把在指定位置所取得的像素值存入颜色变量中Color c = new Color();c = myBitmap.GetPixel(10,10);/获取此Bitmap中指定像素的颜色。(3)将颜色值分解出单色分量值int r,g,b;r= c.R;g=c.G;b=c.B; 3Font类Font类定义特定文本格式,包括字体、字号和字形属性。Font类的常用构造函数是public Font(string 字体名,float 字号,FontStyle 字形),其中字号和字体为可选项和public Font(string 字体名,float 字号),其中“字体名”为Font的FontFamily的字符串表示形式。下面是定义一个Font对象的例子代码:FontFamily fontFamily = new FontFamily("Arial");Font font = new Font(fontFamily,16,FontStyle.Regular,GraphicsUnit.Pixel);字体常用属性如表7.5所示。表7.5 字体的常用属性名称说明Bold是否为粗体。FontFamily字体成员。Height字体高。Italic是否为斜体。Name字体名称。Size字体尺寸。Size

注意事项

本文(C__GDI+编程教程)为本站会员(pu****.1)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.