第一范文网 - 专业文章范例文档资料分享平台

C# - GDI+编程教程 

来源:用户分享 时间:2025/12/8 23:46:50 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

.

图8 HatchBrush应用

3.TextureBrush(纹理画刷)

纹理画刷拥有图案,并且通常使用它来填充封闭的图形。为了对它初始化,可以使用一个已经存在的别人设计好了的图案,或使用常用的设计程序设计的自己的图案,同时应该使图案存储为常用图形文件格式,如BMP格式文件。这里有一个设计好的位图,被存储为Papers.bmp文件。

private void Form1_Paint(object sender, PaintEventArgs e) {

Graphics g = e.Graphics;

//根据文件名创建原始大小的bitmap对象 Bitmap bitmap = new Bitmap(\//将其缩放到当前窗体大小

bitmap = new Bitmap(bitmap, this.ClientRectangle.Size); TextureBrush myBrush = new TextureBrush(bitmap); g.FillEllipse(myBrush, this.ClientRectangle); }

运行结果如图9所示。

.

.

图9 TextTureBursh应用

4.LinearGradientBrush和PathGradientBrush(渐变画刷)

渐变画刷类似与实心画刷,因为它也是基于颜色的,与实心画刷不同的是:渐变画刷使用两种颜色;它的主要特点是:在使用过程中,一种颜色在一端,而另外一种颜色在另一端,在中间,两种颜色融合产生过渡或衰减的效果。

渐变画刷有两种:线性画刷和路径画刷(LinearGradientBrush和PathGradientBrush)。 其中LinearGradientBrush可以显示线性渐变效果,而PathGradientBrush是路径渐变的可以显示比较具有弹性的渐变效果。

(1)LinearGradientBrush类

LinearGradientBrush类构造函数如下:

public LinearGradientBrush(Point point1,Point point2,Color color1,Color color2)

参数说明:

point1:表示线性渐变起始点的Point结构。 point2:表示线性渐变终结点的Point结构。 color1:表示线性渐变起始色的Color结构。 color2:表示线性渐变结束色的Color结构。 代码如下:

private void Form1_Paint(object sender, PaintEventArgs e) {

Graphics g = e.Graphics;

.

.

LinearGradientBrush myBrush = new LinearGradientBrush(this.ClientRectangle, Color.White, Color.Blue, LinearGradientMode.Vertical); g.FillRectangle(myBrush, this.ClientRectangle); }

运行结果如图10所示。

图10 LinearGradientBrush的应用

(2)PathGradientBrush类

PathGradientBrush类的构造函数如下:

public PathGradientBrush (GraphicsPath path);

参数说明:

path:GraphicsPath,定义此PathGradientBrush填充的区域。 例子代码如下:

private void Form1_Paint(object sender, PaintEventArgs e) {

Graphics g = e.Graphics;

Point centerPoint = new Point(150, 100); int R = 60;

GraphicsPath path = new GraphicsPath();

path.AddEllipse(centerPoint.X-R,centerPoint.Y-R,2*R,2*R); PathGradientBrush brush = new PathGradientBrush(path); //指定路径中心点

.

.

brush.CenterPoint = centerPoint; //指定路径中心的颜色

brush.CenterColor = Color.Red;

//Color类型的数组指定与路径上每个顶点的颜色 brush.SurroundColors = new Color[] { Color.Plum };

g.FillEllipse(brush,centerPoint.X-R,centerPoint.Y-R,2*R,2* R); centerPoint = new Point(350, 100); R = 20;

path = new GraphicsPath();

path.AddEllipse(centerPoint.X-R,centerPoint.Y-R,2*R,2*R); path.AddEllipse(centerPoint.X-2*R,centerPoint.Y-2*R,4*R,4* R); path.AddEllipse(centerPoint.X-3*R,centerPoint.Y-3*R,6*R,6* R); brush = new PathGradientBrush(path); brush.CenterPoint = centerPoint; brush.CenterColor = Color.Red;

brush.SurroundColors = new Color[] { Color.Black, Color.Blue, Color.Green }; g.FillPath(brush, path); }

运行结果如图11所示。

图11 PathGradientBrush应用

2 C#图像处理基础

本次课程主要介绍C#图像处理基础知识以及对图像的基本处理方法和技巧,主要包

.

.

括图像的加载、变换和保存等操作。

2.1 C#图像处理概述

1.图像文件的类型

GDI+支持的图像格式有BMP、GIF、JPEG、EXIF、PNG、TIFF、ICON、WMF、EMF等,几乎涵盖了所有的常用图像格式,使用GDI+可以显示和处理多种格式的图像文件。

2.图像类

GDI+提供了Image、Bitmap和Metafile等类用于图像处理,为用户进行图像格式的加载、变换和保存等操作提供了方便。

(1)Image类

Image类是为Bitmap和Metafile的类提供功能的抽象基类。 (2)Metafile类

定义图形图元文件,图元文件包含描述一系列图形操作的记录,这些操作可以被记录(构造)和被回放(显示)。

(3)Bitmap类

封装GDI+位图,此位图由图形图像及其属性的像素数据组成,Bitmap是用于处理由像素数据定义的图像的对象,它属于System.Drawing命名空间,该命名空间提供了对GDI+基本图形功能的访问。Bitmap类常用方法和属性如表8所示。

表8 Bitmap常用属性和方法

名称 公共属性 Height RawFormat Size Width 公共方法 GetPixel RotateFlip Save SetPixel SetResolution 说明 获取此Image对象的高度。 获取此Image对象的格式。 获取此Image对象的宽度和高度。 获取此Image对象的宽度。 获取此Bitmap中指定像素的颜色。 旋转、翻转或者同事旋转和翻转Image对象。 将Image对象以指定的格式保存到指定的Stream对象。 设置Bitmap对象中指定像素的颜色。 设置此Bitmap的分辨率。 MakeTransparent 使默认的透明颜色对此Bitmap透明。 SetPropertyItem 将指定的属性项设置为指定的值。 Bitmap类有多种构造函数,因此可以通过多种形式建立Bitmap对象,例如: 从指定的现有图像建立Bitmap对象

.

搜索更多关于: C# - GDI+编程教程  的文档
C# - GDI+编程教程 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c8b1jy3ue2q2i4cx3q5al1oirv327pb00pnv_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top