System.Drawing.Imaging.PixelFormat看看是否命名空间没有using,或者 最后一个参数格式不行,试下别的格式,比如32位字节的格式Format32bppArgb

解决方案 »

  1.   

    或者是 20000,或者是 PixelFormat.Format24bppRgb,你可以变换参数试一下。总之不是随便输“可以输入的参数”就一定保证不会抛出这类异常的。有一堆早期的低级类库都是这样,在参数上你看不出约束,只有在运行时在某些参数下才会崩溃,才会给出这类异常。遇到这类库方法,就只有谨慎行事、多做测试(尽管多做测试也不一定管用),因为编译器检查不出来错误。
      

  2.   

    20000没有超出范围
    但是20000x20000就超出范围了啊
    你总的像素数必须能够用int32表示才行
      

  3.   

    改小一些是可以的,但20000x20000 并没有超出int32的范围啊,搞不懂怎么回事
      

  4.   

    其实不是int32表示不了,是你内存放不下了
    你执行如下代码:
    int[ ] i1=new int[200010000];
    int[ ] i2=new int[200010000];
    第一个执行成功,执行到第二个,内存就溢出了