Convert PowerPoint Slides to PNG in C++
About PowerPoint to PNG Conversion
The PNG (Portable Network Graphics) format is not as popular as JPEG (Joint Photographic Experts Group), but it still very popular.
Use case: When you have a complex image and size is not an issue, PNG is a better image format than JPEG.
Tip
You may want to check out Aspose free PowerPoint to PNG Converters: PPTX to PNG and PPT to PNG. They are a live implementation of the process described on this page.Convert PowerPoint to PNG
Go through these steps:
- Instantiate the Presentation class.
- Get the slide object from the Presentation::get_Slides() collection under the ISlide interface.
- Use a ISlide::GetImage() method to get the thumbnail for each slide.
- Use the IImage::Save(String, ImageFormatPtr method to save the slide thumbnail to the PNG format.
This C++ code shows you how to convert a PowerPoint presentation to PNG:
auto pres = System::MakeObject<Presentation>(u"pres.pptx");
for (int32_t index = 0; index < pres->get_Slides()->get_Count(); index++)
{
auto slide = pres->get_Slides()->idx_get(index);
auto fileName = String::Format(u"slide_{0}.png", index);
slide->GetImage()->Save(fileName, ImageFormat::Png);
}
Convert PowerPoint to PNG With Custom Dimensions
If you want to obtain PNG files around a certain scale, you can set the values for desiredX and desiredY, which determine the dimensions of the resulting thumbnail.
This code in C++ demonstrates the described operation:
auto pres = System::MakeObject<Presentation>(u"pres.pptx");
float scaleX = 2.f;
float scaleY = 2.f;
for (int32_t index = 0; index < pres->get_Slides()->get_Count(); index++)
{
auto slide = pres->get_Slides()->idx_get(index);
auto fileName = String::Format(u"slide_{0}.png", index);
slide->GetImage(scaleX, scaleY)->Save(fileName, ImageFormat::Png);
}
Convert PowerPoint to PNG With Custom Size
If you want to obtain PNG files around a certain size, you can pass your preferred width and height arguments for ImageSize.
This code shows you how to convert a PowerPoint to PNG while specifying the size for the images:
auto pres = System::MakeObject<Presentation>(u"pres.pptx");
Size size(960, 720);
for (int32_t index = 0; index < pres->get_Slides()->get_Count(); index++)
{
auto slide = pres->get_Slides()->idx_get(index);
auto fileName = String::Format(u"slide_{0}.png", index);
slide->GetImage(size)->Save(fileName, ImageFormat::Png);
}