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没有用,图片也没有完成转换吗?
展开
 我来答
夏蝉恋冰
2019-09-27
知道答主
回答量:1
采纳率:0%
帮助的人:705
展开全部
curBitmap.SetPixel(i, j, Color.FromArgb(gray, gray, gray));
最后一句应该是这样的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光的雷咩咩
2016-09-03 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7918万
展开全部
怀疑是不是最后一句的color应该换成gray。话说你测试一下不就知道究竟有没有效果了?
追问
setpiexl的函数,第三个变量必须是用Color这个类定义的,改成gray会报错
追答
那试试换成比如Color.FromARGB(x,x,x,gray)的形式。还是那句话,如果运行有效果你再学习其写法,否则代码扔垃圾堆。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式