相关疑难解决方法(0)

C#"参数无效".创建新的位图

如果我尝试创建一个大于19000像素的位图,我会收到错误:参数无效.我该如何解决这个问题?

System.Drawing.Bitmap myimage= new System.Drawing.Bitmap(20000, 20000);
Run Code Online (Sandbox Code Playgroud)

c# size parameters bitmap

31
推荐指数
4
解决办法
7万
查看次数

.Net Bitmap类构造函数(int,int)和(int,int,PixelFormat)抛出完美的参数上的ArgumentException

我有一些代码执行类似的操作(不相关的位被剪切):

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未处理.参数无效." 没有提到哪个参数有问题或什么.我很难过.这就是我所知道的:

  1. 抛出此错误时,bmp1和bmp2从未为null.
  2. if语句的存在从未发挥过作用; 它没有经常死亡.
  3. 构造函数使用的两个示例都抛出了此错误.

我很想说这是一个内存错误,除了它没有提到任何类型.前十几次这发生了超过18000的高度(因此上面的幻数).确定它是我们系统的某种软屏障,我们只是将图像限制在那个高度,这使得异常在一段时间后消失.

对于一些样本数据,我现在看的例外情况是bmp1.Width在2550,bmp1.Height在6135和bmp2.Height在6285.

有人有主意吗?

.net c#

8
推荐指数
1
解决办法
6747
查看次数

标签 统计

c# ×2

.net ×1

bitmap ×1

parameters ×1

size ×1