首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Bitmap.SetPixel(int x,int y,Color color)引发ArgumentException:无效参数

Bitmap.SetPixel(int x,int y,Color color)引发ArgumentException:无效参数
EN

Stack Overflow用户
提问于 2014-02-14 01:32:02
回答 2查看 554关注 0票数 0
代码语言:javascript
复制
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为整数的函数的一部分。保存是一个位图。

代码语言:javascript
复制
save = CreateNonIndexedImage(Bitmap.FromFile("Content/save/map.png"));

map是一个由Tile组成的数组,它是我的一个类。Tile.r、Tile.g和Tile.b是整数。

为什么这会抛出一个ArgumentException?

StackTrace:

代码语言:javascript
复制
   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.
EN

回答 2

Stack Overflow用户

发布于 2014-02-14 01:38:24

根据MSDN的说法,Bitmap.SetPixel不会抛出ArgumentException,而Color.FromArgb会在

红色、绿色或蓝色小于0或大于255。

因此,map[x, y].rmap[x, y].gmap[x, y].b中的一个在整数间隔[0..255]之外。

票数 2
EN

Stack Overflow用户

发布于 2014-02-14 01:36:37

我的猜测是您的图像小于您的数据,导致SetPixel函数调用中出现超出范围的异常。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21761356

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档