C#中如何获取一个像素点的灰度

如题... 如题 展开
 我来答
skynomadism
2009-10-05 · TA获得超过319个赞
知道小有建树答主
回答量:410
采纳率:100%
帮助的人:165万
展开全部
/// <summary>
/// 以黑白效果显示图像
/// </summary>
/// <param name="image"></param>
/// <returns></returns>
public Image BlackWhite(Image image)
{
//
try
{
int Height = image.Height;
int Width = image.Width;
Bitmap newBitmap = new Bitmap(Width, Height);
Bitmap oldBitmap = (Bitmap)image;
Color pixel;
for (int x = 0; x < Width; x++)
for (int y = 0; y < Height; y++)
{
pixel = oldBitmap.GetPixel(x, y);
int r, g, b, Result = 0;
r = pixel.R;
g = pixel.G;
b = pixel.B;
//实例程序以加权平均值法产生黑白图像
int iType = 2;
switch (iType)
{
case 0://平均值法
Result = ((r + g + b) / 3);
break;
case 1://最大值法
Result = r > g ? r : g;
Result = Result > b ? Result : b;
break;
case 2://加权平均值法
Result = ((int)(0.7 * r) + (int)(0.2 * g) + (int)(0.1 * b));
//Convert.ToInt32((double)(((0.3 * c.R) + (0.59 * c.G)) + (0.11 * c.B)));
break;
}
newBitmap.SetPixel(x, y, Color.FromArgb(Result, Result, Result));
}
return newBitmap;
}
catch (Exception ex)
{
return image;
}
}

参考一下吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式