【发布时间】:2019-11-06 10:04:11
【问题描述】:
我正在学习编程,我被这个错误卡了很长时间
我尝试将变量更改为浮动
Color col;
float red, green, blue,gray;
for (int i = 0; i < oImage.Width; i++)
for (int j = 0; j < oImage.Height; j++)
{
col = oImage.GetPixel(i, j);
red = col.R;
green = col.G;
blue = col.B;
gray = red*0.21 + green*0.72 + blue*0.07;
oImage.SetPixel(i, j, Color.FromArgb(gray, gray, gray));
}
picImage.Refresh();
我希望输出是将普通照片转换为亮度背景
【问题讨论】:
-
对于普通读者来说,知道出了什么问题会很高兴:您是否遇到编译器错误?您是否收到运行时错误?还是程序编译运行但没有产生预期的结果?
-
我也对很容易用谷歌搜索的问题不屑一顾。当我用谷歌搜索“c# convert float to int”时,我得到了许多有用的答案。其中(当然排在第 12 位)是canonical documentation from microsoft.:“任何两种数字类型之间都存在转换,无论是隐式还是显式。您必须使用强制转换运算符 () 来调用显式转换。” ... "显式数字转换: ... 从浮点数到 sbyte、byte、short、ushort、int、uint、long、ulong 或 decimal"。
标签: c# visual-studio