2010-06-21 46 views
2

我有一個內存Image,我需要從它得到一個Stream寫入OpenXML文檔。有人可以請我指出正確的方法。如何從內存映像獲取流?

+0

而且那會是System.Windows.Controls.Image,System.Drawing.Image對象, System.Web.UI.WebControls.Image或者其他類? – 2010-06-21 09:46:32

+0

System.Drawing.Image – fearofawhackplanet 2010-06-21 09:52:06

回答

4

您可以使用以Stream作爲參數的Save方法的過載。要創建一個存在於內存中的流,可以使用MemoryStream類型。像這樣的東西應該工作:

// Create new memory stream and save the image 
var ms = new MemoryStream(); 
image.Save(ms, ImageFormat.Jpeg); 

// Seek to the first byte in the stream, so that other classes who 
// use it will start reading from the beginning 
ms.Seek(0, SeekOrgin.Begin); 

現在你可以通過新創建的流ms到其他對象(例如將其保存在OpenXML)。另請參見:

1

我會解決的幾件事情:

var ms = new MemoryStream(); 
image.Save(ms, image.RawFormat); // Save it in the original format of the image 
ms.Seek(0, SeekOrigin.Begin); // Fixed typo