搜索
您的当前位置:首页正文

c#图像处理

2020-05-27 来源:易榕旅网
一、GDI+技术简介

1、Graphics Device Interface,图形设备接口。

2、GDI+ 是一种构成Microsoft Windows XP 操作系统的子系统的应用程序编程接口(API)。 3、GDI+ 负责在屏幕和打印机上显示信息。

4、GDI+:GDI的改进,同时也是.NET框架结构的重要组成部分。和GDI一样它提供料对二维图形图像和文字排版处理的支持。

5、通过GDI+能够创建与设备无关的应用程序。

二、GDI+提供的新特性: 1、Alpha混合技术。 2、反锯齿处理技术。 3、渐变色和纹理填充。 4、宽线条。

5、基本几何曲线样式。 6、可缩放区域。 7、浮点数坐标。 8、嵌入画笔。

9、高质量过滤和缩放。

10、多种线条样式和端点选项。

三、图像处理中的最重要三个类: 1、Bitmap类:

封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。Bitmap 是用于处理由像素数据定义的图像的对象。 2、BitmapData 类:

System.Drawing.Imaging 命名空间;指定位图图像的特性。 3、Graphics 类:

提供将对象绘制到显示设备的方法;Graphics 与特定的设备上下文关联。

四、GDI+ 使用三个坐标空间: 1. 世界坐标(World):

是用于建立特殊图形世界模型的坐标系,也是在.NET Framework 中传递给方法的坐标系。 2. 页面坐标系(Page):

是指绘图图面(如窗体或控件)使用的坐标系。 3. 设备坐标系(Device):

是在其上进行绘制的物理设备(如屏幕或纸张)所使用的坐标系。

五、GDI+ 在坐标系中:

1、默认坐标系统的原点是在左上角,并且x轴指向右边,y轴指向下边。 2、默认坐标系统的度量单位是像素。 3、坐标变换相关方法: ResetTransform:重置。 TranslateTransform:平移。 RotateTransform:旋转。

ScaleTransform:缩放。 4、使用Matrix变换:

Matrix.Rotate 方法:顺时针按照指定角度旋转。 Matrix.Scale 方法:缩放。 Matrix.Translate 方法:平移。

六、Color:

1、Color封装了对颜色的定义。该结构中封装了数百个分别对应与标准调色板色彩的静态成员。

如Color.Red代表红色,Color.Purple代表紫色。 2、有用的静态方法:

FromArgb: 通过三原色构建Color对象。

FromKnownColor: 通过已知颜色构建Color对象。 FromName: 通过颜色名称来构建Color对象。 3、例如:

Color temp1 = Color.Black;

Color temp2 = Color.FromArgb(0,0,0)

Color temp3 = Color.FromName(“Black”);

七、Size 和 SizeF

1、表示绘制平面上的一个尺寸,一个为整数,一个为浮点数。 2、构造函数

Size sz1 = new Size(10,10) 3、属性:

Width: 表示宽度值; Height:表示高度值;

4、重载了加、减、比较、赋值操作: Size sz2 = sz1;

Size sz3 = sz1 - sz2; Size sz4 = sz1 + sz2;

八、Point和PointF

1、表示绘制平面上点的坐标,一个为整数,另外一个为浮点数。 2、构造方法:

Point pt = new Point(20,20);

Point pt = new Point(new Size(10,10)) 3、重载了加、减、比较、赋值操作

九、Rectangle 和 RectangleF: 1、表示绘制平面上的一个矩形区域。 2、属性:

Bottom:矩形底部的纵座标; Top:矩形顶部的纵座标; Left:矩形坐部的横座标;

Right:矩形右部的横座标; Height:矩形的高度; Width:矩形的宽度; Size:矩形的尺寸;

IsEmpty:矩形是否为空(高度和宽度是否都是0); X:矩形左上角的横座标; Y:矩形左上角的纵座标;

十、Graphics 类:

1、提供将对象绘制到显示设备的方法。 2、Graphics 与特定的设备上下文关联。

十一、处理图形包括两个步骤: 1. 创建 Graphics 对象。

法1:对象的Control.CreateGraphics 方法:

private void myFunction(object sender, PaintEventArgs e) { Graphics g = this.CreateGraphics(); 法2:控件的Control.Paint 事件:

private void form1_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics;

法3:重写控件的 OnPaint 事件

protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics;

2. 使用 Graphics 对象绘制线条和形状、呈现文本 或显示与操作图像。

十二、1、Graphics 对象在创建后,可用于绘制线条和形状、呈现文本或显示与操作图像。 2、与 Graphics 对象一起使用的主要对象有:

Pen 类:用于绘制线条、勾勒形状轮廓或呈现其他几何表示形式。 Brush 类:用于填充图形区域,如实心形状、图像或文本。 Font 类:提供有关在呈现文本时要使用什么形状的说明。 Color 结构:表示要显示的不同颜色。

十三、锯齿:

1、消除锯齿:指对绘制的图形和文本的粗糙边缘进行平滑处理以改进它们的外观或可读性。 2、对图形的线条消除锯齿:修改Graphics对象的 SmoothingMode 属性。 Graphics g = this.CreateGraphics();

g.SmoothingMode = SmoothingMode.AntiAlias;

g.DrawLine(new Pen(Color.Blue, 3), 0, 0, 100, 100); 3、对文本消除锯齿:修改Graphics对象的 TextRenderingHint 属性:System.Drawing.Text 命名空间。

十四、GDI+ 中的图像处理:

1、GDI+中对图像处理提供了以下支持:

a、支持BMP、GIF、JPEG、PNG、TIFF、ICON等等广泛格式的图像文件; b、提供了用于多种光栅图像格式进行编码和解码的公共接口; c、支持为图像格式添加动态格式;

d、支持对图像的像素进行多种处理,包括亮度、对比度、颜色平衡、模糊、消弱等; e、支持对图像进行旋转、剪切等操作。

2、主要通过Image(抽象类)实现

十五、打印:

1、定义打印内容,存放到图像bmp中;

2、在PrintDocument实例的PrintPage事件中绘制图像: Graphics g = e.Graphics; g.DrawImage(bmp, x, y);

3、在打印预览操作中:关系文档、显示预览:

printDocument1.DefaultPageSettings.Landscape = true; printPreviewDialog1.Document = printDocument1; printPreviewDialog1.ShowDialog();

4、在打印操作中,调用打印方法: printDocument1.Print();

十六、总结: 1、GDI+在应用程序和显卡驱动之间提供了一个抽象层,使得应用程序开发人员在输出屏幕和打印机信息的时候无需考虑具体显示设备的细节。

2、GDI+主要负责 在显示屏幕和打印设备输出有关信息,它是一组应用程序编程接口。 3、Graphics 类封装了 GDI+ 绘图表面,正是在此表面上进行绘制。 4、使用 Graphics 要遵循的两个步骤为: 创建 Graphics 对象;

使用 Graphics 对象线条和形状、显示文本或显示和处理图像;

因篇幅问题不能全部显示,请点此查看更多更全内容

Top