图像是 PowerPoint 演示文稿中最常见的元素之一。当您想要在另一个演示文稿中重复使用这些图像时,您可能需要从特定幻灯片稿或整个演示文稿中提取图像。在本文中,您将学习如何使用 Spire.Presentation for .NET 从 PowerPoint 演示文稿中提取图像。
安装 Spire.Presentation for .NET
首先,您需要添加 Spire.Presentation for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.Presentation
从整个演示文稿中提取图像
要从整个 PowerPoint 演示文稿中提取图像,需要使用 Presentation.Images 属性获取演示文稿中所有图像的集合,然后遍历该集合并调用 ImageCollection[int].Image.Save() 方法保存每个图像到一个图像文件。以下是详细步骤:
- 初始化 Presentation 类的一个实例。
- 使用 Presentation.LoadFromFile() 方法加载 PowerPoint 演示文稿。
- 通过 Presentation.Images 属性获取演示文稿中所有图片的集合。
- 遍历集合,调用 ImageCollection[int].Image.Save() 方法将集合中的图片保存到图片文件中。
- C#
- VB.NET
using Spire.Presentation;
using Spire.Presentation.Collections;
using System.Drawing;
namespace ExtractImagesFromPresentation
{
internal class Program
{
static void Main(string[] args)
{
//初始化Presentation类的实例
Presentation ppt = new Presentation();
//加载PowerPoint演示文稿
ppt.LoadFromFile("示例文档.pptx");
//获取演示文稿的图像集
ImageCollection imageCollection = ppt.Images;
//遍历集合中的图像
for (int i = 0; i < imageCollection.Count; i++)
{
//提取图像
imageCollection[i].Image.Save(string.Format("Presentation\\图片{0}.png", i));
}
ppt.Dispose();
}
}
}
Imports Spire.Presentation
Imports Spire.Presentation.Collections
Namespace ExtractImagesFromPresentation
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化Presentation类的实例
Dim ppt As Presentation = New Presentation()
'加载PowerPoint演示文稿
ppt.LoadFromFile("示例文档.pptx")
'获取演示文稿的图像集
Dim imageCollection As ImageCollection = ppt.Images
'遍历集合中的图像
For i As Integer = 0 To imageCollection.Count - 1
'提取图像
imageCollection(i).Image.Save(String.Format("Presentation\图片{0}.png", i))
Next
ppt.Dispose()
End Sub
End Class
End Namespace
从特定幻灯片中提取图像
要从特定幻灯片中提取图像,您需要遍历幻灯片上的所有形状,找到 SlidePicture 或 PictureShape 类型的形状,然后使用 SlidePicture.PictureFill.Picture.EmbedImage.Image.Save() 或 PictureShape.EmbedImage .Image.Save() 方法将图像保存到图像文件。 以下是详细步骤:
- 初始化 Presentation 类的一个实例。
- 使用 Presentation.LoadFromFile() 方法加载 PowerPoint 演示文稿。
- 通过 Presentation.Slides[int] 属性按索引获取特定幻灯片。
- 遍历幻灯片上的所有形状。
- 检查形状是否为 SlidePicture 或 PictureShape 类型。如果结果为真,则使用 SlidePicture.PictureFill.Picture.EmbedImage.Image.Save() 或 PictureShape.EmbedImage.Image.Save() 方法将图像保存到图像文件。
- C#
- VB.NET
using Spire.Presentation;
namespace ExtractImagesFromSlide
{
internal class Program
{
static void Main(string[] args)
{
//初始化 Presentation 类的一个实例
Presentation ppt = new Presentation();
//加载 PowerPoint 演示文稿
ppt.LoadFromFile("示例文档.pptx");
//获取指定幻灯片
ISlide slide = ppt.Slides[1];
int i = 0;
//遍历指定幻灯片上的所有形状
foreach (IShape s in slide.Shapes)
{
//检查形状是否为SlidePicture类型
if (s is SlidePicture)
{
//提取图像
SlidePicture ps = s as SlidePicture;
ps.PictureFill.Picture.EmbedImage.Image.Save(string.Format(@"D:\.NET\提取图片\bin\Debug\Slide\图像{0}.png", i));
i++;
}
//检查形状是否为 PictureShape 类型
if (s is PictureShape)
{
//提取图像
PictureShape ps = s as PictureShape;
ps.EmbedImage.Image.Save(string.Format(@"Slide\图像{0}.png", i));
i++;
}
}
}
}
}
Imports Spire.Presentation
Namespace ExtractImagesFromSlide
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'初始化 Presentation 类的一个实例
Dim ppt As Presentation = New Presentation()
'加载 PowerPoint 演示文稿
ppt.LoadFromFile("示例文档.pptx")
'获取指定幻灯片
Dim slide As ISlide = ppt.Slides(1)
Dim i = 0
'遍历指定幻灯片上的所有形状
For Each s As IShape In slide.Shapes
'检查形状是否为SlidePicture类型
If TypeOf s Is SlidePicture Then
'提取图像
Dim ps As SlidePicture = TryCast(s, SlidePicture)
ps.PictureFill.Picture.EmbedImage.Image.Save(String.Format("D:\.NET\提取图片\bin\Debug\Slide\图像{0}.png", i))
i += 1
End If
'检查形状是否为 PictureShape 类型
If TypeOf s Is PictureShape Then
'提取图像
Dim ps As PictureShape = TryCast(s, PictureShape)
ps.EmbedImage.Image.Save(String.Format("Slide\图像{0}.png", i))
i += 1
End If
Next
End Sub
End Class
End Namespace
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。