画像として保存したいバイナリデータがあります。画像を保存しようとすると、画像の作成に使用されたメモリ ストリームが保存前に閉じられていた場合、例外がスローされます。これを行う理由は、画像を動的に作成しているためです..メモリストリームを使用する必要があります。
これはコードです:
[TestMethod]
public void TestMethod1()
{
// Grab the binary data.
byte[] data = File.ReadAllBytes("Chick.jpg");
// Read in the data but do not close, before using the stream.
Stream originalBinaryDataStream = new MemoryStream(data);
Bitmap image = new Bitmap(originalBinaryDataStream);
image.Save(@"c:\test.jpg");
originalBinaryDataStream.Dispose();
// Now lets use a nice dispose, etc...
Bitmap2 image2;
using (Stream originalBinaryDataStream2 = new MemoryStream(data))
{
image2 = new Bitmap(originalBinaryDataStream2);
}
image2.Save(@"C:\temp\pewpew.jpg"); // This throws the GDI+ exception.
}
ストリームを閉じた状態で画像を保存する方法について何か提案はありますか? 画像が保存された後、開発者がストリームを閉じることを覚えているとは言えません。実際、開発者は、イメージがメモリ ストリームを使用して生成されたことを認識していません (別のコードで発生するため)。
私は本当に混乱しています:(