将图像转换为红色灰度

时间:2014-01-08 23:06:18

标签: c#

我有一个位图图像,我想将其转换为灰度图像,但使用红色代替黑色作为灰色的基础。

Bitmap formatted = bitmap.Clone(new Rectangle(0, 0, bitmap.Width, bitmap.Height), System.Drawing.Imaging.PixelFormat.Format16bppGrayScale);

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:1)

在我看来,您想要应用滤镜并从图像中提取红色分量。

基本上,您要做的是否定给定像素的绿色和蓝色分量,并仅捕获红色分量。

我发现了一小段代码就是这么做的。请检查以下链接:

http://www.codeproject.com/Articles/1989/Image-Processing-for-Dummies-with-C-and-GDI-Part-1

查看有关滤镜的会话。你可以下载源代码并捅一下。

答案 1 :(得分:1)

这是一种蛮力方法,但它有效:

Bitmap formatted = bitmap.Clone(new Rectangle(0, 0, bitmap.Width, bitmap.Height), PixelFormat.Format24bppRgb);
int width = bitmap.Width;
int height = bitmap.Height;
for (int w = 0; w < width; w++)
{
    for (int h = 0; h < height; h++)
    {
        formatted.SetPixel(w, h, Color.FromArgb(bitmap.GetPixel(w, h).A, bitmap.GetPixel(w, h).R, 0, 0));
    }
}
相关问题