2011-07-11 14 views
0

例外の詳細:System.ArgumentException:パラメータが無効です。c#パラメータが無効です

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); 

すべて同じ方法で失敗します。

+4

類似:http://stackoverflow.com/questions/6333681/c-parameter-is-not-valid-creating-new-bitmap – AakashM

+0

例外は利用可能なメモリのために発生します。 Piotrはおそらくより多くの記憶を持っています。 – RvdK

+0

これをチェックしてくださいhttp://stackoverflow.com/questions/5801652/bitmap-while-assigning-height-width-crashes/5802113#5802113 ..あなたが今持っているものに似ています – V4Vendetta

答えて

2

ビットマップを割り当てるだけのメモリがないと思います。

+0

どのくらいのメモリが必要ですか?違うタイプのエラーを投げかけませんか? –

+0

〜265.5 MBしかし、それはメモリの連続部分でなければならないことに注意してください。 BPP値を32から24または16に変更することもできます。これにより、メモリが少なくて済みます。 – treetey

0

このような大きなブロックを割り当てるために使用可能なメモリがない場合、このエラーが発生します。

確かに、それは非常に良いエラーメッセージではありません。なぜMicrosoftがOutOfMemory例外ではなくこのエラーメッセージを選択したのかわかりませんが、それはどうなりますか。

関連する問題