C#图像处理中的两个重要类
Bitmap类
Bitmap是用来处理由像素数据定义的图像的对象。
其继承层次结构:System.Object->System.MarshalByRefObject->System.Drawing.Image->System.Drawing.Bitmap
命名空间:System.Drawing
程序集:System.Drawing(在System.Drawing.dll中)
该类主要属性
Height:获取图像的高度(像素为单位);
Width:获取图像的宽度(像素为单位);
Palette:获取或设置图像的调色板;
PixelFormat:获取图像的像素格式。
该类最主要的方法有LockBits、UnlockBits,分别锁定和解锁系统内存中的位图像素,成对使用,每次调用LockBits之后都应该调用一次UnlockBits。
public BitmapData LockBits(Rectangle rect, ImageLockMode flags, PixelFormat format); public void UnLockBits(BitmapData bitmapdata);
BitmapData类
BitmapData对象指定了位图属性。
Height:被锁定位图的高度;
Width:被锁定位图宽度;
PixelFormat:数据实际像素格式;
Scan0:被锁定数组受字节地址,如整个图像被锁定,则是图像第一个字节地址;
Stride:步幅,也称之为扫描宽度。
如上图所示,数组宽度并不一定等于图像像素数组的宽度,还有一部分未用区域。这是为了提高效率,系统要确定每行的字节数必须为4的倍数。