缩略图通常是小尺寸的图像,显示文件的内容并使其更容易滚动浏览。 Microsoft PowerPoint 显示幻灯片的缩略图,便于滚动和打开所需的幻灯片。可能存在您想要制作自己的 PowerPoint 查看器应用程序并想要动态生成幻灯片缩略图的情况。对于这种情况,本文将教您如何使用 C++ 以编程方式生成 PowerPoint PPTX 或 PPT 演示文稿的缩略图。
用于为 PowerPoint PPTX/PPT 文件生成缩略图的 C++ API
为了生成 PowerPoint 文件的缩略图,我们将使用简单易用的 Aspose.Slides for C++ API。它是一个强大的 API,提供了许多帮助您创建、阅读和修改 PowerPoint 文件的功能。 API 还提供了生成 PowerPoint 文件缩略图的功能。首先,您可以通过 NuGet 安装 API 或直接从 下载 部分下载。
PM> Install-Package Aspose.Slides.Cpp
使用 C++ 为 PowerPoint PPTX/PPT 文件生成缩略图
以下是使用 C++ 生成 PowerPoint 文件缩略图的步骤。
- 使用 Presentation 类加载 PowerPoint 文件。
- 循环播放演示文稿的幻灯片。
- 使用 ISlide->GetThumbnail(float scaleX, float scaleY) 方法生成每张幻灯片的缩略图。
- 使用 Bitmap->Save(const String & filename, const Imaging::ImageFormatPtr & format) 方法保存缩略图图像。
以下示例代码展示了如何使用 C++ 生成 PowerPoint 文件的缩略图。
// 源文件路径
const String sourceFilePath = u"SourceDirectory\\Slides\\SamplePresentation.pptx";
// 加载演示文件
auto presentation = System::MakeObject<Presentation>(sourceFilePath);
// 循环播放幻灯片
for (SharedPtr<ISlide> slide : presentation->get_Slides())
{
// 生成缩略图
SharedPtr<System::Drawing::Bitmap> bitmap = slide->GetThumbnail(1, 1);
// 保存 JPEG 文件
bitmap->Save(String::Format(u"OutputDirectory\\GenerateThumbnail_out_{0}.jpg", slide->get_SlideNumber()), System::Drawing::Imaging::ImageFormat::get_Jpeg());
}
生成具有用户定义尺寸的缩略图
在生成 PowerPoint 文件的缩略图时,您还可以根据自己的需要指定缩略图的尺寸。要在生成缩略图时指定自定义尺寸,请按照以下步骤操作。
- 使用 Presentation 类加载 PowerPoint 文件。
- 为缩略图设置所需的尺寸。
- 循环播放演示文稿的幻灯片。
- 使用 ISlide->GetThumbnail(float scaleX, float scaleY) 方法生成每张幻灯片的缩略图。
- 使用 Bitmap->Save(const String & filename, const Imaging::ImageFormatPtr & format) 方法保存缩略图图像。
以下示例代码展示了如何使用 C++ 生成具有自定义尺寸的缩略图。
// 源文件路径
const String sourceFilePath = u"SourceDirectory\\Slides\\SamplePresentation.pptx";
// 加载演示文件
auto presentation = System::MakeObject<Presentation>(sourceFilePath);
// 用户定义维度
int desiredX = 1200;
int desiredY = 800;
// 获取 X 和 Y 的缩放值
float ScaleX = (float)(1.0 / presentation->get_SlideSize()->get_Size().get_Width()) * desiredX;
float ScaleY = (float)(1.0 / presentation->get_SlideSize()->get_Size().get_Height()) * desiredY;
// 循环播放幻灯片
for (SharedPtr<ISlide> slide : presentation->get_Slides())
{
// 生成缩略图
SharedPtr<System::Drawing::Bitmap> bitmap = slide->GetThumbnail(ScaleX, ScaleY);
// 保存 JPEG 文件
bitmap->Save(String::Format(u"OutputDirectory\\GenerateThumbnailWithCustomDimensions_out_{0}.jpg", slide->get_SlideNumber()), System::Drawing::Imaging::ImageFormat::get_Jpeg());
}
获得免费许可证
为了在没有评估限制的情况下试用 API,您可以申请 免费的临时许可证。
结论
在本文中,您学习了如何使用 C++ 为 PowerPoint PPTX/PPT 文件生成缩略图。此外,您还了解了如何生成具有自定义尺寸的缩略图。要了解更多关于 Aspose.Slides for C++ API 提供的功能,您可以访问官方文档。如有任何问题,请随时通过我们的 免费支持论坛 与我们联系。