System.Drawing.Image流C#


78

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

Answers:


150

请尝试以下操作:

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。


我只是在写同样的东西!
配置器

保存到流时,System.Drawing.Image.Save需要一种格式。msdn.microsoft.com/en-us/library/ms142147.aspx
jcollum

11
您可以通过将图像保存语句更改为以下形式来保留原始图像格式:image.Save(stream,image.RawFormat);
Marko

14

使用内存流

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

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

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

     return stream;
 }
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.