.NET Windows编程系列(10):.NET图像处理(上)

.NET Windows编程系列(10):.NET图像处理(上)


摘要:

在.NET编程中,由于GDI+的出现,使得对于图像的处理功能大大增强。在本节介绍如何在.NET中显示图像、如何对图像进行旋转和剪切等物理变换,并且我们将实现一个简易的图像处理程序。

注:本系列节选于MSDN Webcasts上邵志东老师的《 .NET Windows编程系列课程》,在我的Blog中整理发表,方便大家一同参考!此系列相关资料请到这里下载。

本节主要内容:

GDI+中的图像处理

图像物理变换

坐标系和变换

一、GDI+中的图像处理

GDI+中对图像处理提供了以下支持:
支持BMP、GIF、JPEG、PNG、TIFF、ICON等等广泛格式的图像文件。
提供了用于多种光栅图像格式进行编码和解码的公共接口。
支持为图像格式添加动态格式。
支持对图像的像素进行多种处理,包括亮度、对比度、颜色平衡、模糊、消弱等。
支持对图像进行旋转、剪切等操作。
 
主要通过Image(抽象类)实现。

Bitmap类

从Image派生,可以处理BMP、Jpeg、GIF、PNG等格式

1.构建

Bitmap bt1 = new Bitmap(“c:\\1.bmp”);
Bitmap bt2 = new Bitmap(bt1,200,300);
Bitmap bt3; bt3.FromFile(“文件名称”);

2.Bitmap类常用属性

名称

描述

Height

图像的高度

HorizontalResolution

图像水平方向上的分辨率

Palette

图像所使用的调色板

PhysicalDimension

图像的物理维度

PixelFormat

图像像素的格式

RawFormat

图像的存储格式

Size

图像的尺寸

VerticalResolution

图像垂直方向上的分辨率

Width

图像的宽度

3.Bitmap类常用方法

名称

描述

Dispose

释放图像资源

GetBounds

获得图像对象的矩形边界

GetFrameCount

得到指定维度上的边框数目

GetPropertyItem

得到图像的属性信息

GetThumbnailImage

得到缩略图

RemovePropertyItem

删除图像对象的属性信息

RotateFlip

对图像进行旋转或翻转

Save

按照指定格式保存图像

SaveAdd

添加编码信息后保存图像

SelectActiveFrame

选择图像的活动边界

ImageFormat

Bmp:获取位图图像格式(BMP)。
Emf:获取增强型Windows 图元文件图像格式(EMF)。
Exif:获取可交换图像文件(Exif) 格式。
Gif:获取图形交换格式(GIF) 图像格式。
Guid:获取表示此ImageFormat对象的Guid结构。
Icon:获取Windows 图标图像格式。
Jpeg:获取联合图像专家组(JPEG) 图像格式。
MemoryBmp:获取内存位图图像格式。
Png:获取W3C 可移植网络图形(PNG) 图像格式。
Tiff:获取标签图像文件格式(TIFF) 图像格式。
Wmf:获取Windows 图元文件(WMF) 图像格式。

DEMO1:图像的转换

二、图像物理变换

Image.RotateFlip方法

Rotate180FlipNone:指定不进行翻转的180 度旋转。
Rotate180FlipX:指定后接水平翻转的180 度旋转。
Rotate180FlipXY:指定后接水平翻转和垂直翻转的180 度旋转。
Rotate180FlipY:指定后接垂直翻转的180 度旋转。
Rotate270FlipNone:指定不进行翻转的270 度旋转。
Rotate270FlipX:指定后接水平翻转的270 度旋转。
Rotate270FlipXY:指定后接水平翻转和垂直翻转的270 度旋转。
Rotate270FlipY:指定后接垂直翻转的270 度旋转。
Rotate90FlipNone:指定不进行翻转的90 度旋转。
Rotate90FlipX:指定后接水平翻转的90 度旋转。
Rotate90FlipXY:指定后接水平翻转和垂直翻转的90 度旋转。
Rotate90FlipY:指定后接垂直翻转的90 度旋转。
RotateNoneFlipNone:指定不进行旋转和翻转。
RotateNoneFlipX:指定没有后跟水平翻转的旋转。
RotateNoneFlipXY:指定没有后跟水平和垂直翻转的旋转。
RotateNoneFlipY:指定没有后跟垂直翻转的旋转。

DEMO2:图像的变换

三、坐标系和变换

坐标系

GDI+使用三个坐标空间:世界、页面和设备。
世界坐标是用于建立特殊图形世界模型的坐标系,也是在.NET Framework 中传递给方法的坐标系。
页面坐标系是指绘图图面(如窗体或控件)使用的坐标系。
设备坐标系是在其上进行绘制的物理设备(如屏幕或纸张)所使用的坐标系。

坐标系和变换

myGraphics.TranslateTransform(100, 50); myGraphics.DrawLine(myPen, 0, 0, 160, 80);

Graphics变换相关方法

ResetTransform
TranslateTransform:平移
RotateTransform:旋转
ScaleTransform:缩放

使用Matrix 类进行变换

Matrix.Rotate方法:顺时针按照指定角度旋转
Matrix.Scale方法:缩放
Matrix.Translate方法:平移
DEMO3:坐标系变换示例
DEMO4:图像变换

 

本系列文章快速导航:

posted @ 2007-11-06 11:24 李永京 阅读(1079) 评论(0)  编辑 收藏 所属分类: WinForm