2011-07-20 43 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调用之间添加。