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 = 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.发布于 2014-02-14 01:38:24
根据MSDN的说法,Bitmap.SetPixel不会抛出ArgumentException,而Color.FromArgb会在
红色、绿色或蓝色小于0或大于255。
因此,map[x, y].r、map[x, y].g或map[x, y].b中的一个在整数间隔[0..255]之外。
发布于 2014-02-14 01:36:37
我的猜测是您的图像小于您的数据,导致SetPixel函数调用中出现超出范围的异常。
https://stackoverflow.com/questions/21761356
复制相似问题