如果我尝试创建一个大于19000像素的位图,我会收到错误:参数无效.我该如何解决这个问题?
System.Drawing.Bitmap myimage= new System.Drawing.Bitmap(20000, 20000);
Run Code Online (Sandbox Code Playgroud) 我有一些代码执行类似的操作(不相关的位被剪切):
void foo(Bitmap bmp1, Bitmap bmp2)
{
Bitmap bmp3;
if(something)
bmp3 = new Bitmap(bmp1.Width, bmp1.Height + bmp2.Height);
else
bmp3 = new Bitmap(bmp1.Width, 18000);
(more stuff here that runs fine)
}
Run Code Online (Sandbox Code Playgroud)
任何人大部分时间都没事.首先.随着项目的继续,它在新的Bitmap线上开始失败.它给出的错误是:"ArgumentException未处理.参数无效." 没有提到哪个参数有问题或什么.我很难过.这就是我所知道的:
我很想说这是一个内存错误,除了它没有提到任何类型.前十几次这发生了超过18000的高度(因此上面的幻数).确定它是我们系统的某种软屏障,我们只是将图像限制在那个高度,这使得异常在一段时间后消失.
对于一些样本数据,我现在看的例外情况是bmp1.Width在2550,bmp1.Height在6135和bmp2.Height在6285.
有人有主意吗?