【问题标题】:c# Parameter is invalidc#参数无效
【发布时间】:2011-07-11 08:43:49
【问题描述】:

异常详细信息:System.ArgumentException:参数无效。

Bitmap result = new Bitmap(7016, 9921);

部分方法:

public Bitmap ResizeBitmap(Bitmap b, int nWidth, int nHeight)
{
    Bitmap result = new Bitmap(nWidth, nHeight);

nWidth 和 nHeight 抛出了同样的错误,所以我用显式值替换了它,仍然是同样的错误,虽然它似乎适用于较小的数字,但是:

http://msdn.microsoft.com/en-us/library/7we6s1x3.aspx

似乎没有表明有任何限制?我试过了:

Bitmap result = new Bitmap(nWidth, nHeight);
Bitmap result = new Bitmap(7016, 9921);
Bitmap result = new Bitmap((int)7016, (int)9921);

都以同样的方式失败。

【问题讨论】:

标签: c# asp.net bitmap


【解决方案1】:

我认为没有足够的内存来分配位图。

【讨论】:

  • 我需要多少内存?这不会引发不同类型的错误吗?
  • ~265.5 MB。但请注意,它应该是内存的连续部分。您还可以将 BPP 值从 32 更改为 24 或 16 - 这将需要更少的内存。
【解决方案2】:

当您没有可用内存来分配如此大的块时,就会发生该错误。

诚然,这不是一个很好的错误消息,我不确定微软为什么选择这个错误消息而不是 OutOfMemory 异常,但事实就是这样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多