|
■No65758 (0777 さん) に返信 > 15000x15000の1BitBmpファイルをピクチャーBoxへ表示したのですが、メモリ不足でエラーが発生します。
どのプラットフォームか書かれていませんが、32bit プロセスとして実行するのなら無理だと思ってください。 どうしても実現したいのであれば、表示する領域だけメモリ上に読み込むような工夫が必要です。 (その部分は自力で作る必要あり。Bitmap クラスを通じて一部分だけ切り出すようなアプローチでは結局できないので…)
DrawImage はたいていの場合、同じ大きさの 24bit か 32bit のバッファを内部で必要とするようです。(経験上の話) 仮に 15,000*15,000 の 32bit ビットマップが内部で確保されると仮定すると、900MB の連続した領域が必要になります。 一方、32bit プロセスではユーザーが利用可能なメモリ空間は 2GB を下回りますし、DLL が読み込まれる、メモリの確保・解放で断片化する、.NET のヒープで使用されるなどして連続した空き領域がなくなります。
|