我得到了一些简单的代码来获得5位图的平均颜色。
private Bitmap AVG5Bitmaps(Bitmap a, Bitmap b, Bitmap c, Bitmap d, Bitmap e)
{
Bitmap result = new Bitmap(c);
for (int x = 0; x < result.Width; x++)
{
for (int y = 0; y < result.Height; y++)
{
int r = (
(int)a.GetPixel(x, y).R +
(int)b.GetPixel(x, y).R +
(int)c.GetPixel(x, y).R +
(int)d.GetPixel(x, y).R +
(int)e.GetPixel(x, y).R) / 5;
int g = (
(int)a.GetPixel(x, y).G +
(int)b.GetPixel(x, y).G +
(int)c.GetPixel(x, y).G +
(int)d.GetPixel(x, y).G +
(int)e.GetPixel(x, y).G) / 5;
int b = (
(int)a.GetPixel(x, y).B +
(int)b.GetPixel(x, y).B +
(int)c.GetPixel(x, y).B +
(int)d.GetPixel(x, y).B +
(int)e.GetPixel(x, y).B) / 5;
result.SetPixel(x,y,Color.FromArgb(r,g,b))
}
}
return result;
}
奇怪的是a.GetPixel(x, y).R
已被识别,但是b.GetPixel(x, y).R
会出错:
在声明
之前不能使用局部变量b
b
甚至不被视为位图对象?我没理解,为什么代码适用于a
但不适用于b
。这是Visual Studio 2010的错误吗?
根据要求更新了完整功能代码的问题
答案 0 :(得分:1)
你的专栏:
int b =
隐藏参数b
,因此您尝试在其assignmnent中访问该变量。因此错误。重命名变量。