博文

C#图像处理――前奏(二)(2009-06-02 21:36:00)

摘要:四   指针法 C/C++的习惯,不是C#的特点 public static Bitmap  RGB2Gray(Bitmap srcBitmap)         {             int wide = srcBitmap.Width;             int height = srcBitmap.Height ;             Rectangle rect = new Rectangle(0, 0, wide, height);             BitmapData srcBmData = srcBitmap.LockBits(rect,                       ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);             Bitmap dstBitmap = CreateGrayscaleImage(wide, height);             BitmapData dstBmData = dstBitmap.LockBits(rect,  &nb......

阅读全文(2715) | 评论:0

C#图像处理――前奏(一)(2009-06-02 21:31:00)

摘要:一.Bitmap类 Bitmap对象封装了GDI+中的一个位图,此位图由图形图像及其属性的像素数据组成.因此Bitmap是用于处理由像素数据定义的图像的对象.该类的主要方法和属性如下: 1.       GetPixel方法和 SetPixel方法:获取和设置一个图像的指定像素的颜色. 2.       PixelFormat属性:返回图像的像素格式. 3.       Palette属性:获取和设置图像所使用的颜色调色板. 4.       Height Width属性:返回图像的高度和宽度. 5.       LockBits 方法和UnlockBits方法:分别锁定和解锁系统内存中的位图像素.在基于像素点的图像处理方法中使用LockBits 和UnlockBits是一个很好的方式,这两种方法可以使我们指定像素的范围来控制位图的任意一部分,从而消除了通过循环对位图的像素逐个进行处理,每调用LockBits 之后都应该调用一次UnlockBits.   二.BitmapData类 BitmapData对象指定了位图的属性 1.       Height属性:被锁定位图的高度. 2.       Width属性:被锁定位图的高度. 3.       PixelFormat属性:数据的实际像素格式. 4.       Scan0属性:被锁定数组的首字节地址,如果整个图像被锁定,则是图像的第一个字节地址. 5.       Stride属性:步幅,也称为扫描宽度. 如上图所示,数组的长度并不一定等于图像像素数组的长度,还有一部分未用区......

阅读全文(3362) | 评论:1