通过MemoryStream将Bitmap写入OpenXML ImagePart

时间:2011-07-20 17:19:42

标签: openxml

我有一个存储在Bitmap对象中的图像,我想将其粘贴到OpenXML文档中。我尝试使用MemoryStream作为中间步骤如下:

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

但是这总是导致媒体文件夹中的空文件和PowerPoint显示错误而不是图像。我知道MemoryStream有正确的图像数据,因为我已经将它写入文件而没有问题。当我尝试从FileStream加载图像时,它工作得很好。

如何将此Bitmap转换为OpenXML文档?

1 个答案:

答案 0 :(得分:12)

我几乎就在那里,我只需要在将Bitmap保存到它之后将MemoryStream的位置重置为开头。

ms.Position = 0;

应在SaveFeedData来电之间添加该行。