posts - 77, comments - 54, trackbacks - 0, articles - 0
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

[GDI+]如何将一个彩色图像转换成黑白图像

Posted on 2006-06-30 20:24 东人EP 阅读(250) 评论(1)  编辑 收藏 引用 所属分类: .NET

彩色图像转换为黑白图像时需要计算图像中每像素有效的亮度值,通过匹配像素亮度值可以轻松转换为黑白图像。
计算像素有效的亮度值可以使用下面的公式:
Y=0.3RED+0.59GREEN+0.11Blue
    然后使用 Color.FromArgb(Y,Y,Y) 来把计算后的值转换,转换代码可以使用下面的方法来实现:

public Bitmap ConvertToGrayscale(Bitmap source)
{
     Bitmap bm = new Bitmap(source.Width,source.Height);
     for(int y=0;y<bm.Height;y++)
     {
          for(int x=0;x<bm.Width;x++)
          {      
               Color c=source.GetPixel(x,y);
               int luma = (int)(c.R*0.3 + c.G*0.59+ c.B*0.11);
               bm.SetPixel(x,y,Color.FromArgb(luma,luma,luma));
          }
     }
     return bm;
}

Feedback

# re: [GDI+]如何将一个彩色图像转换成黑白图像   回复  更多评论   

2006-07-01 20:21 by hesicong
貌似这样处理速度会比较慢,能有一些更快的方法么?
只有注册用户登录后才能发表评论。