C#を使用して、ディスクからJPEGファイルを読み込み、バイト配列に変換しようとしています。これまでのところ、私はこのコードを持っている:JPEGイメージをバイト配列に変換する - COM例外
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();
}
}
しかし、ラインARGH
を実行することは私にメッセージを与える:
COMExceptionはは未処理でした。ハンドルが無効です。 ( HRESULTからの例外:0x80070006(E_HANDLE))
私はファイルLenna.jpg
について何か特別なことがあるとは思わない - 私はhttp://computervision.wikia.com/wiki/File:Lenna.jpgからそれをダウンロードしました。あなたは上記のコードで何が間違っているのか分かりますか?