如何在c#中将位图图像转换为黑白图像?

Flo*_*Flo 9 c# image-processing filter

可能重复:
在c#中将图像转换为黑白或棕褐色

我正在编写一个C#应用程序,它打开一个图像,然后单击一个按钮,只显示黑白图像!我肯定会在网上找到很多信息,但我的搜索并没有给我很多可理解和有用的信息.

我不知道如何继续.有人有建议吗 ?在网上知道教程?

raR*_*aRa 24

我曾经找到一个将位图转换为灰度的函数

public void ToGrayScale(Bitmap Bmp)
{
    int rgb;
    Color c;

    for (int y = 0; y < Bmp.Height; y++)
    for (int x = 0; x < Bmp.Width; x++)
    {
        c = Bmp.GetPixel(x, y);
        rgb = (int)Math.Round(.299 * c.R + .587 * c.G + .114 * c.B);
        Bmp.SetPixel(x, y, Color.FromArgb(rgb, rgb, rgb));
    }
}
Run Code Online (Sandbox Code Playgroud)

该函数接受位图作为参数,并将其更改为其灰度版本.

我希望这有帮助.

  • (cR + cG + cB)/ 3 - 使图像变灰但结果位图不正确.您应该使用:(cR*.3)+(cG*.59)+(cB*.11).或者像在A_Nablsi中一样回答:(.2999*cR + .587*cG + .114*cB). (16认同)
  • 有用的功能,但只是想指出返回Bmp是误导,因为无论如何都会修改Bmp参数的内容.抓住了我,因为我假设函数返回了一个新的位图. (2认同)