it-swarm-ja.com

Paint.NETにファイルサイズの制限はありますか

小さいtifは問題なく開くことができますが、100MB以上のこれらのtifはPaint.NETでは開くことができません。他のソフトウェア(IrfanView、XNViewPortable)は問題なく開くことができるので、メモリの問題ではないと思います。これはソフトウェアの制限ですか?

「ファイルを開いているときに不特定のエラーが発生しました。」

http://dl.dropbox.com/u/1156285/PaintDotCrash_OpenBifTif.avi

XP SP3)でPaint.NET v3.5.5(最終リリースビルド3.55.3767.28608)を使用しています。

更新:

Joel Coehoorn の答えは正しい方向に進んでいると思います。画像を白黒に変換した結果、ファイルサイズは5MB弱になりました。次に、開こうとしましたが、エラーが再度表示されました。

オリジナルを使用して、さまざまなことを試しましたが、最終的に、ピクセルを6000x6000から5000x5000に減らすと、Paint.NETで画像を開くことができることがわかりました(24ビットカラーでも)。

7
Jay Cummins

OutOfMemory例外が発生しているようです。 .NetOutOfMemory例外は少し誤解を招く可能性があります。 アドレス空間が不足すると、この例外が発生するのがはるかに一般的です。これは、物理メモリとは少し異なります。つまり、タスクマネージャをチェックして使用されているメモリの量を確認するなど、問題の追跡に役立たない場合があります。

代わりに、問題はPaint.Netのバグの結果である可能性が高く、画像の特定の部分が.Netランタイムによってラージオブジェクトヒープと呼ばれるものに配置されます。次に、この同じメモリセットが数回作成および破棄されるように、ファイルが読み込まれます。おそらく、毎回少し大きくなります。ガベージコレクターは、(物理メモリが解放またはページングされたとしても)ラージオブジェクトヒープからアドレス空間を十分に解放または圧縮しないため、突然OutOfMemory例外が発生します。

解決策は、MicrosoftがLOHに関する.Netランタイムの動作を変更して、特定の状況(おそらく要求に応じて、またはOutOfMemory例外をスローする前)にLOHを圧縮できるようにするか、またはPaint.Netプログラムは、ファイルを何度も再作成するのではなく、問題の原因となっている既存のデータ構造が正しく成長するようにファイルをロードする方法を修正します。

4
Joel Coehoorn

このようなファイルをメモリに保存する方法は、必要なメモリの量に影響します。他のアプリケーションの方がメモリ効率が高い可能性があります。

あなたの説明を考えると、Paint.NETのメモリが不足しているように聞こえます。ファイルを開こうとしているときにタスクマネージャーを開いて、メモリ使用量が増えるかどうかを確認することができます。

3
Daniel Beck