c# - 我不知道如何从 'float' 转换为 'int'
问题描述
我正在学习编程,我被这个错误困扰了很长时间
我尝试将变量更改为浮动
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();
我希望输出是将普通照片转换为光度背景
解决方案
代替
gray = red*0.21 + green*0.72 + blue*0.07;
....
oImage.SetPixel(i, j, Color.FromArgb(gray, gray, gray));
和
gray = red * 0.21f + green * 0.72f + blue * 0.07f;
...
oImage.SetPixel(i, j, Color.FromArgb((int)gray, (int)gray, (int)gray));
0.21
被认为是双重的。如果添加 af
,它将将该值标记为float
参考:
不带后缀或带 d 或 D 后缀的字面量是 double 类型
带有 f 或 F 后缀的字面量是 float 类型
带有 m 或 M 后缀的字面量是十进制类型
- float 可以铸造成
int
这样的(int)myFloatValue
作品
推荐阅读
- c# - 在 C# 中从数据库中获取 ID - 获取悬停面板的 ID
- javascript - Google Maps API 绘图库 - 有没有办法在拖动一点时更新形状坐标?
- heroku - 在heroku中部署后使环境变量工作
- xamarin.forms - Xamarin Forms:加载页面时未触发 onAppearing()
- python - 如何根据组平均值填充 DataFrame 中的所有缺失值(跨所有列)?
- c - 在 C 中连接分隔的 char** 元素
- python - Groupby 匹配不同组的模式
- python - 每月拆分一年的数据(带有子图)
- r - 如何使用 Ragtops(R) 接收特定日期的期权价格
- python - Python Socket Makefile 对关闭文件的错误 I/O 操作