C#彩色图片灰度化算法实例
本文实例讲述了C#彩色图片灰度化实现方法。分享给大家供大家参考。具体方法如下:
主要功能代码如下:
publicstaticBitmapMakeGrayscale(Bitmaporiginal)
{
//createablankbitmapthesamesizeasoriginal
BitmapnewBitmap=newBitmap(original.Width,original.Height);
//getagraphicsobjectfromthenewimage
Graphicsg=Graphics.FromImage(newBitmap);
//createthegrayscaleColorMatrix
System.Drawing.Imaging.ColorMatrixcolorMatrix=newSystem.Drawing.Imaging.ColorMatrix(
newfloat[][]
{
newfloat[]{.3f,.3f,.3f,0,0},
newfloat[]{.59f,.59f,.59f,0,0},
newfloat[]{.11f,.11f,.11f,0,0},
newfloat[]{0,0,0,1,0},
newfloat[]{0,0,0,0,1}
});
//createsomeimageattributes
System.Drawing.Imaging.ImageAttributesattributes=newSystem.Drawing.Imaging.ImageAttributes();
//setthecolormatrixattribute
attributes.SetColorMatrix(colorMatrix);
//drawtheoriginalimageonthenewimage
//usingthegrayscalecolormatrix
g.DrawImage(original,newRectangle(0,0,original.Width,original.Height),0,0,original.Width,original.Height,GraphicsUnit.Pixel,attributes);
//disposetheGraphicsobject
g.Dispose();
returnnewBitmap;
}