Conversion d'une image JPEG en tableau d'octets - exception COM

À l'aide de C#, je suis en train de charger un fichier JPEG à partir d'un disque et de le convertir en un tableau d'octets. Jusqu'à présent, j'ai ce code:

static void Main(string[] args)
{
    System.Windows.Media.Imaging.BitmapFrame bitmapFrame;

    using (var fs = new System.IO.FileStream(@"C:\Lenna.jpg", FileMode.Open))
    {
        bitmapFrame = BitmapFrame.Create(fs);
    }

    System.Windows.Media.Imaging.BitmapEncoder encoder = 
        new System.Windows.Media.Imaging.JpegBitmapEncoder();
    encoder.Frames.Add(bitmapFrame);

    byte[] myBytes;
    using (var memoryStream = new System.IO.MemoryStream())
    {
        encoder.Save(memoryStream); //Line ARGH

        //mission accomplished if myBytes is populated
        myBytes = memoryStream.ToArray(); 
    }
}

Toutefois, l'exécution de la ligne de ARGH me donne le message:

COMException était non gérée. Le handle n'est pas valide. (Exception de
HRESULT: 0x80070006 (E_HANDLE))

Je ne pense pas qu'il y est quelque chose de spécial sur le fichier Lenna.jpg - je l'ai téléchargé à partir de http://computervision.wikia.com/wiki/File:Lenna.jpg. Pouvez-vous dire quel est le problème avec le code ci-dessus?

source d'informationauteur user181813 | 2011-09-14