web-dev-qa-db-ja.com

C#をストリームするSystem.Drawing.Image

System.Drawing.Image私のプログラムで。ファイルは、メモリに保持されているファイルシステム上にありません。それからストリームを作成する必要があります。これをどうやってやるの?

68
Linda

以下を試してください:

public static Stream ToStream(this Image image, ImageFormat format) {
  var stream = new System.IO.MemoryStream();
  image.Save(stream, format);
  stream.Position = 0;
  return stream;
}

その後、次を使用できます。

var stream = myImage.ToStream(ImageFormat.Gif);

GIFをシナリオに適した形式に置き換えます。

136
JaredPar

メモリストリームを使用する

using(MemoryStream ms = new MemoryStream())
{
    image.Save(ms, ...);
    return ms.ToArray();
}
12
John Gietzen