2011-07-20 48 views
4

我有一張圖像存儲在一個Bitmap對象中,我想將其保存在一個OpenXML文檔中。我用一個MemoryStream作爲一箇中間步驟嘗試如下:通過MemoryStream將位圖寫入OpenXML ImagePart

ImagePart part = container.AddNewPart<ImagePart>("image/jpeg", imageId); 
using (MemoryStream ms = new MemoryStream()) 
{ 
    bitmap.Save(ms, ImageFormat.Jpeg); 
    part.FeedData(ms); 
} 

但結果總是在空文件在媒體文件夾和PowerPoint顯示錯誤,而不是圖像。我知道MemoryStream具有正確的圖像數據,因爲我將它寫入文件沒有問題。當我嘗試從FileStream加載圖像時,它工作得很好。

如何將此位圖導入OpenXML文檔?

回答

9

我幾乎在那裏,我只需要將MemoryStream的位置重置爲開頭,然後將位圖保存到它。

ms.Position = 0; 

該行應在SaveFeedData調用之間添加。