私はロードしてbmpストリームに変換したい画像をpng形式で持っています。これが生成するストリームをファイルに保存し、このようにそれを開くときに異なっているがhttps://pastebin.com/raw/p1TBjnD1System.Drawing.Imageデータは、ファイルとストリームに保存するときに異なります
:
FileStream originalFile = File.Open("image.png", FileMode.Open);
System.Drawing.Image fileImage = System.Drawing.Image.FromStream(originalFile);
FileStream bmpStream;
fileImage.Save("image.bmp", System.Drawing.Imaging.ImageFormat.Bmp);
bmpStream = File.Open("image.bmp", FileMode.Open);
// Image.FromFile yields the same result.
FileStream originalFile = File.Open("image.png", FileMode.Open);
System.Drawing.Image fileImage = System.Drawing.Image.FromStream(originalFile);
MemoryStream bmpStream = new MemoryStream();
fileImage.Save(bmpStream, System.Drawing.Imaging.ImageFormat.Bmp);
結果:私はこれを達成するために使用しているコードは以下のとおりです。
結果:https://pastebin.com/raw/vSdRwZpL
ストリームに保存するときにヘッダーが欠落しているようです。これはなぜですか、ファイルに保存しなくても簡単にストリームに追加できますか?
私の質問はこれを行う方法ではなく、ストリームがこのヘッダーをファイル内に含んでいない理由です。
[System.Drawing.Image to stream C#]の可能な複製(https://stackoverflow.com/questions/1668469/system-drawing-image-to-stream-c-sharp) –
私はそうは思わないこれはどうして出力が違うのかということに関する質問です。 – Cryru
オリジナルのPNGをどこかにアップロードして、同じデータセットで自分自身をテストできますか? –