Конвертация слайдов PowerPoint в PNG на C++
О преобразовании PowerPoint в PNG
Формат PNG (Portable Network Graphics) не так популярен, как JPEG (Joint Photographic Experts Group), но всё равно широко используется.
Сценарий использования: Когда у вас сложное изображение и размер не имеет значения, PNG лучше подходит, чем JPEG.
Tip
Возможно, вам будет интересно воспользоваться бесплатными конвертерами PowerPoint в PNG от Aspose: PPTX to PNG и PPT to PNG. Это живые реализации процесса, описанного на этой странице.Преобразовать PowerPoint в PNG
Выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите объект слайда из коллекции Presentation::get_Slides() через интерфейс ISlide.
- Вызовите метод ISlide::GetImage(), чтобы получить миниатюру каждого слайда.
- С помощью метода IImage::Save(String,ImageFormatPtr сохраните миниатюру слайда в формате PNG.
Этот пример кода на C++ показывает, как конвертировать презентацию PowerPoint в 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);
}
Преобразовать PowerPoint в PNG с пользовательскими масштабами
Если необходимо получить PNG‑файлы определённого масштаба, задайте значения desiredX и desiredY, которые определяют размеры получаемой миниатюры.
Следующий код на C++ демонстрирует описанную операцию:
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);
}
Преобразовать PowerPoint в PNG с пользовательским размером
Если необходимо получить PNG‑файлы определённого размера, передайте желаемые аргументы width и height для ImageSize.
Этот пример кода показывает, как конвертировать PowerPoint в PNG с указанием размеров изображений:
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);
}
FAQ
Как экспортировать только конкретный элемент (например, диаграмму или изображение), а не весь слайд?
Aspose.Slides поддерживает создание миниатюр для отдельных фигур; вы можете отрисовать форму в PNG‑изображение.
Поддерживается ли параллельное преобразование на сервере?
Да, но не делитесь одним экземпляром презентации между потоками. Используйте отдельный экземпляр для каждого потока или процесса.
Какие ограничения имеются в пробной версии при экспорте в PNG?
Режим оценки добавляет водяной знак к выводимым изображениям и накладывает другие ограничения до применения лицензии.