我正在尝试从docx文件导出图像。如何将Shape对象的EncodedPackage转换为图像?
我的代码示例:
DocumentFormat.OpenXml.Vml.Shape shape = imageElement.Descendants<DocumentFormat.OpenXml.Vml.Shape>().FirstOrDefault();
byte[] bytes = System.Convert.FromBase64String(shape.EncodedPackage.Value.Replace("\n", ""));
System.Drawing.Image image;
using (MemoryStream ms = new MemoryStream(bytes))
{
image = System.Drawing.Image.FromStream(ms);
}
image.Save(fileName);
您可以从ImagePart
获取图像。试试这个:
var imageParts = doc.MainDocumentPart.ImageParts;
foreach (var imagePart in imageParts)
{
var uri = imagePart.Uri;
var filename = uri.ToString().Split('/').Last();
var stream = doc.Package.GetPart(uri).GetStream();
Bitmap b = new Bitmap(stream);
b.Save(@"C:\Extracted_Images\" + filename);
}
花开。非常感谢你。您节省了我半天的时间)在您编写代码之前,我使用了扩展名,该扩展名有助于理解文档的结构。然后您的代码解决了问题。