System.Drawing.Image流C#

时间:2009-11-03 16:29:43

标签: c# c#-3.0

我的程序中有一个System.Drawing.Image。该文件不在文件系统中,而是保存在内存中。我需要从中创建一个流。我该怎么做呢?

3 个答案:

答案 0 :(得分:130)

尝试以下方法:

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替换为适合您的方案的任何格式。

答案 1 :(得分:12)

使用内存流

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

答案 2 :(得分:1)

public static Stream ToStream(this Image image)
{
     var stream = new MemoryStream();

     image.Save(stream, image.RawFormat);
     stream.Position = 0;

     return stream;
 }