我的程序中有一个System.Drawing.Image
。该文件不在文件系统中,而是保存在内存中。我需要从中创建一个流。我该怎么做呢?
答案 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;
}