if (map[x, y] != null)
save.SetPixel(x, y, System.Drawing.Color.FromArgb(map[x, y].r, map[x, y].g, map[x, y].b));
此代码是x和y为整数的函数的一部分。 save是一个Bitmap。
save = CreateNonIndexedImage(Bitmap.FromFile("Content/save/map.png"));
map [,]是一个由Tile组成的数组,它是我的一类。 Tile.r,Tile.g和Tile.b都是整数。
为什么抛出ArgumentException?
StackTrace:
bei System.Drawing.Image.get_Width()
bei System.Drawing.Bitmap.SetPixel(Int32 x, Int32 y, Color color)
bei RogueLike.Game1.saveTile(Int32 x, Int32 y) in C:\Users\Niklas\Documents\Visual Studio 2010\Projects\RogueLike\RogueLike\RogueLike\Game1.cs:Zeile 472.
答案 0 :(得分:1)
根据MSDN,Bitmap.SetPixel
不会抛出ArgumentException,但是Color.FromArgb
会在
红色,绿色或蓝色小于0或大于255。
因此,map[x, y].r
,map[x, y].g
或map[x, y].b
中的一个位于整数区间[0..255]
之外。
答案 1 :(得分:0)
我的猜测是您的图片小于您的数据,导致您的SetPixel函数调用超出范围异常。