【发布时间】:2009-11-03 16:29:43
【问题描述】:
我的程序中有一个System.Drawing.Image。该文件不在它保存在内存中的文件系统上。我需要从中创建一个流。我该怎么做呢?
【问题讨论】:
我的程序中有一个System.Drawing.Image。该文件不在它保存在内存中的文件系统上。我需要从中创建一个流。我该怎么做呢?
【问题讨论】:
尝试以下方法:
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。
【讨论】:
使用内存流
using(MemoryStream ms = new MemoryStream())
{
image.Save(ms, ...);
return ms.ToArray();
}
【讨论】:
public static Stream ToStream(this Image image)
{
var stream = new MemoryStream();
image.Save(stream, image.RawFormat);
stream.Position = 0;
return stream;
}
【讨论】: