今、jpg ImageからImage Classを取得しようとしています。 既にBitmapSourceをhereにリンクして使用しようとしました。jpg ImageのMemoryStreamからImageクラスを取得するにはどうすればよいですか?
エラーは英語ではありませんが、意味は「イメージヘッダーが壊れていますので、デコードできません。」です。 gif、png、bmpのような他のフォーマットは問題ありません。 jpg形式のみがこの問題に直面しています。
<シーケンス> Zipアーカイブファイル(JPGファイルは、このファイルにあります。) - >解凍ライブラリ - >のMemoryStream(JPGファイル) - >たBitmapSource
imageSource.BeginInit();
imageSource.StreamSource = memoryStream;
imageSource.EndInit();
このコードはエラーになります。
私は理由がメモリストリームはjpgの生のバイナリを持っていると思うし、それはビットマップ形式ではありません。したがって、BitmapSourceはこのメモリストリームデータをビットマップイメージとして認識できません。
どうすればこの問題を解決できますか? 私の目標は、入力: "ZIPファイル(jpg)" - >出力:画像クラスです。
ありがとうございました!
<マイコード>
using (MemoryStream _reader = new MemoryStream())
{
reader.WriteEntryTo(_reader); // <- input jpg_data to _reader
var bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.CacheOption = BitmapCacheOption.OnLoad;
bitmap.StreamSource = _reader;
bitmap.EndInit();
bitmap.Freeze();
Image tmpImg = new Image();
tmpImg.Source = bitmap;
}
のBitmapImageできるコースのJPGバッファーをデコードします。おそらく、あなたはどこかでストリームを巻き戻すことを忘れていました。 'stream.Position = 0;'あなたのコードをもっと見せてください。 – Clemens
ありがとう!私は自分のコードを添付しました。 –