У меня есть несколько двоичных данных, которые я хочу сохранить как изображение. Когда я пытаюсь сохранить изображение, он генерирует исключение, если поток памяти, используемый для создания изображения, был закрыт до сохранения. Причина, по которой я делаю это, - это то, что я динамически создаю изображения и как таковые.. Мне нужно использовать поток памяти.
это код:
[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.
}
Есть ли у кого-нибудь предложения, как я могу сохранить изображение с закрытым потоком? Я не могу полагаться на разработчиков, чтобы не забудьте закрыть поток после сохранения изображения. Фактически у разработчика не было бы ИДЕИ, чтобы изображение было сгенерировано с использованием потока памяти (потому что это происходит в другом коде, в другом месте).
Я действительно смущен: (