我有一个存储在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文档?
答案 0 :(得分:12)
我几乎就在那里,我只需要在将Bitmap保存到它之后将MemoryStream的位置重置为开头。
ms.Position = 0;
应在Save
和FeedData
来电之间添加该行。