System.Drawing.Image流C#

Lin*_*nda 70 c# c#-3.0

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

Jar*_*Par 138

请尝试以下方法:

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

然后你可以使用以下内容:

var stream = myImage.ToStream(ImageFormat.Gif);
Run Code Online (Sandbox Code Playgroud)

用适合您的方案的任何格式替换GIF.

  • 您可以通过将image save语句更改为:image.Save(stream,image.RawFormat)来保留原始图像格式; (5认同)

Joh*_*zen 13

使用内存流

using(MemoryStream ms = new MemoryStream())
{
    image.Save(ms, ...);
    return ms.ToArray();
}
Run Code Online (Sandbox Code Playgroud)