Image.Save (..) genera una excepción GDI + porque el flujo de memoria está cerrado

Tengo algunos datos binarios que quiero guardar como imagen. Cuando intento guardar la imagen, arroja una excepción si el flujo de memoria utilizado para crear la imagen se cerró antes de guardar. La razón por la que hago esto es porque estoy creando imágenes dinámicamente y como tal ... necesito usar un flujo de memoria.

Este es el código:

[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.
}

¿Alguien tiene alguna sugerencia sobre cómo podría guardar una imagen con la secuencia cerrada? No puedo confiar en que los desarrolladores recuerden cerrar la transmisión después de guardar la imagen. De hecho, el desarrollador NO TENDRÍA IDEA de que la imagen se generó utilizando un flujo de memoria (porque ocurre en algún otro código, en otro lugar).

Estoy realmente confundido :(

Respuestas a la pregunta(14)

Su respuesta a la pregunta