文档彩票走势图>>Aspose中文文档>>从Word文档中提取图像
从Word文档中提取图像
Aspose.Words是一种高级Word文档处理API,用于执行各种文档管理和操作任务。API支持生成,修改,转换,呈现和打印文档,而无需在跨平台应用程序中直接使用Microsoft Word。
Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格式和最常用的图像/多媒体格式。
使用 Aspose.Words在 Aspose.Words 中,使用Shape类来处理图像。要选择所有形状节点,请使用GetChildNodes方法,并使用ImageData属性提取图像数据。
以下代码示例演示如何从文档中提取图像并将其另存为文件:
Document doc = new Document(MyDir + "Extract image.docx"); // Save the document to memory and reload it. using (MemoryStream stream = new MemoryStream()) { doc.Save(stream, SaveFormat.Doc); Document doc2 = new Document(stream); // "Shape" nodes that have the "HasImage" flag set contain and display images. IEnumerable<Shape> shapes = doc2.GetChildNodes(NodeType.Shape, true) .OfType<Shape>().Where(s => s.HasImage); int imageIndex = 0; foreach (Shape shape in shapes) { string imageFileName = $"Image.ExportImages.{imageIndex}_Aspose.Words_{FileFormatUtil.ImageTypeToExtension(shape.ImageData.ImageType)}"; shape.ImageData.Save(ArtifactsDir + imageFileName); imageIndex++; } }
点击复制
使用 Open XML SDK
需要添加的命名空间:
using System.Collections.Generic; using System.Drawing; using System.Linq; using DocumentFormat.OpenXml.Packaging; using NUnit.Framework;
点击复制
以下代码示例演示如何从文档中提取图像并将其另存为文件:
public void ExtractImageFromWordDocumentFeature() { using (WordprocessingDocument doc = WordprocessingDocument.Open(MyDir + "Extract image.docx", false)) { int imgCount = doc.MainDocumentPart.GetPartsOfType<ImagePart>().Count(); if (imgCount > 0) { List<ImagePart> imgParts = new List<ImagePart>(doc.MainDocumentPart.ImageParts); foreach (ImagePart imgPart in imgParts) { Image img = Image.FromStream(imgPart.GetStream()); string imgfileName = imgPart.Uri.OriginalString.Substring(imgPart.Uri.OriginalString.LastIndexOf("/") + 1); img.Save(ArtifactsDir + imgfileName); } } } }
点击复制