2009-11-03 28 views
49

我在我的程序中有一個System.Drawing.Image。該文件不在它保存在內存中的文件系統上。我需要從中創建一個流。我會如何去做這件事?System.Drawing.Image流C#

回答

102

嘗試以下操作:

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 。

+0

我只是寫着完全相同的東西! – configurator 2009-11-03 16:34:28

+0

System.Drawing.Image.Save在保存到流時需要格式。 http://msdn.microsoft.com/en-us/library/ms142147.aspx – jcollum 2011-05-31 20:45:03

+2

您可以通過將圖像保存語句更改爲以下內容來保留原始圖像格式:image.Save(stream,image.RawFormat); – Marko 2017-03-31 16:01:36

6

使用內存流

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