c# setpixel函数的使用 10
下面是一个彩色转灰度的代码:Colororcolor;inti,j,gray;for(i=0;i<imgHeight;i++){for(j=0;j<imgWidth;j+...
下面是一个彩色转灰度的代码:
Color orcolor;
int i,j,gray;
for(i=0;i<imgHeight;i++)
{
for(j=0;j<imgWidth;j++)
{
orcolor=curBitmap.GetPixel(j,i);
gray = (int)(0.3 * orcolor.R + 0.59 * orcolor.G * 0.11 * orcolor.B);
curBitmap.SetPixel(j, i, orcolor);
}
}
gray是将彩色的像素值转换成灰度值,但最后一句 curBitmap.SetPixel(j, i, orcolor);又将原来的彩色像素值画给了原图像, 这样不就相当于gray没有用,图片也没有完成转换吗? 展开
Color orcolor;
int i,j,gray;
for(i=0;i<imgHeight;i++)
{
for(j=0;j<imgWidth;j++)
{
orcolor=curBitmap.GetPixel(j,i);
gray = (int)(0.3 * orcolor.R + 0.59 * orcolor.G * 0.11 * orcolor.B);
curBitmap.SetPixel(j, i, orcolor);
}
}
gray是将彩色的像素值转换成灰度值,但最后一句 curBitmap.SetPixel(j, i, orcolor);又将原来的彩色像素值画给了原图像, 这样不就相当于gray没有用,图片也没有完成转换吗? 展开
2个回答
展开全部
curBitmap.SetPixel(i, j, Color.FromArgb(gray, gray, gray));
最后一句应该是这样的。
最后一句应该是这样的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
怀疑是不是最后一句的color应该换成gray。话说你测试一下不就知道究竟有没有效果了?
追问
setpiexl的函数,第三个变量必须是用Color这个类定义的,改成gray会报错
追答
那试试换成比如Color.FromARGB(x,x,x,gray)的形式。还是那句话,如果运行有效果你再学习其写法,否则代码扔垃圾堆。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询