如何用C#对8位的BMP灰度图进行处理?

来源:百度知道 编辑:UC知道 时间:2024/06/07 23:23:25
如题,我知道对24位真彩色的图像进行处理是用Pixel.R(或者Pixel.G/Pixel.B)和GetPixel(x,y);
但是对8位的BMP灰度图该用C#里面的什么函数方法呢?之前只在VC里面做过图像处理,到了C#不知道该用什么函数方法了,请高人指教

/// <summary>
/// 灰度
/// </summary>
/// <param name="b">原始图</param>
/// <param name="mode">模式(true:加权模式, false:平均模式)</param>
/// <returns></weightingMode>
public static Bitmap ToGray(Bitmap b, bool weightingMode)
{
if (b == null) return null;

try
{

int width = b.Width;
int height = b.Height;

BitmapData data = b.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

unsafe
{
byte* p = (byte*)data.Scan0;
int offset = data.Stride - width * 3;
byte gray = 0;
for (int y = 0; y < height; y++)