問題:
Image を使用してイメージを保存するとき.Save(...) をメモリ ストリームで使用する場合、保存前にメモリ ストリームが閉じられると、開発者は GDI 例外に遭遇する可能性があります。ただし、動的イメージ作成シナリオでは、保存する前にストリームを閉じる必要があります。
コード シナリオ:
Bitmap image2; using (Stream originalBinaryDataStream2 = new MemoryStream(data)) { image2 = new Bitmap(originalBinaryDataStream2); }
このシナリオでは、メモリ ストリームoriginalBinaryDataStream2 が閉じられます。 using ブロックを終了するとき。その後、イメージ image2 を保存すると、GDI 例外が発生します。
解決策:
メモリ ストリームは明示的に閉じる必要がないため、手動で閉じる必要はありません。ただし、ビットマップ オブジェクトを閉じると、関連付けられたメモリ ストリームも自動的に閉じられます。
Bitmap image2; using (Stream originalBinaryDataStream2 = new MemoryStream(data)) { image2 = new Bitmap(originalBinaryDataStream2); } image2.Dispose(); // Also closes the memory stream
ビットマップを破棄すると、メモリ ストリームが適切に閉じられ、例外なく画像を保存できるようになります。
以上が閉じた MemoryStream にイメージを保存するときに GDI 例外を回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。