PowerPoint Slaytlarını C++'ta PNG'ye Dönüştür
Genel Bakış
Bu makale, Aspose.Slides for C++ kullanarak sunum slaytlarını PNG görüntülerine nasıl dönüştüreceğinizi açıklar. PPT, PPTX ve ODP gibi formatlarda sunumları yükleyebilir, her slaytı işleyebilir ve ayrı bir PNG görüntüsü olarak kaydedebilirsiniz.
Aşağıdaki örnekler, varsayılan ölçekle render etme, ölçeği artırma, çıktı boyutlarını piksel olarak belirleme ve bir degrade render stili seçmeyi gösterir.
PowerPoint’i PNG’ye Dönüştür
Bir sunumu, Presentation sınıfı ile yükleyin ve slaytlarına Presentation::get_Slide erişicisi aracılığıyla erişin. Örnek, her slaytı parametresiz olarak ISlide::GetImage ile render ederek bir küçük resim oluşturur. Ardından, her render edilen slaytı PNG görüntüsü olarak kaydetmek için IImage::Save metodunu ImageFormat::Png ile çağırır.
#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/Presentation.h>
#include <IImage.h>
#include <ImageFormat.h>
#include <system/string.h>
using namespace Aspose::Slides;
using namespace System;
auto presentation = MakeObject<Presentation>(u"presentation.pptx");
auto slideCount = presentation->get_Slides()->get_Count();
for (auto index = 0; index < slideCount; index++)
{
auto slide = presentation->get_Slide(index);
auto image = slide->GetImage();
image->Save(String::Format(u"slide_{0}.png", index), ImageFormat::Png);
image->Dispose();
}
presentation->Dispose();
Note
Parametresiz ISlide::GetImage aşırı yüklemesi 0.2 ölçeğinde render eder. Örneğin, 720 × 540 puan ölçüsündeki bir slayt 144 × 108 piksel bir küçük resim üretir. Çıktı boyutlarını kontrol etmek için aşağıda gösterildiği gibi ölçek faktörleriyle ya da açık bir görüntü boyutu ile aşırı yüklemeleri kullanın.PowerPoint’i Özel Boyutlarla PNG’ye Dönüştür
Render edilen boyutları kontrol etmek için ISlide::GetImage yöntemine yatay ve dikey ölçek faktörleri gönderin. Bu örnekte, her iki faktör de 2 olduğundan 720 × 540 puan ölçüsündeki bir slayt 1440 × 1080 piksel bir görüntü üretir. Aynı ölçek faktörleri slaytın en-boy oranını korur. Her görüntü, IImage::Save ile PNG formatında kaydedilir.
#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/Presentation.h>
#include <IImage.h>
#include <ImageFormat.h>
#include <system/string.h>
using namespace Aspose::Slides;
using namespace System;
auto presentation = MakeObject<Presentation>(u"presentation.pptx");
auto scaleX = 2.f;
auto scaleY = scaleX;
auto slideCount = presentation->get_Slides()->get_Count();
for (auto index = 0; index < slideCount; index++)
{
auto slide = presentation->get_Slide(index);
auto image = slide->GetImage(scaleX, scaleY);
image->Save(String::Format(u"slide_{0}.png", index), ImageFormat::Png);
image->Dispose();
}
presentation->Dispose();
PowerPoint’i Özel Boyutla PNG’ye Dönüştür
Çıktı boyutlarını piksel olarak belirtmek için ölçek faktörleri yerine bir boyut değerini ISlide::GetImage metoduna gönderin. Bu örnek, her slaytı 960 × 720 pikselde render eder ve sonucu IImage::Save ile kaydeder. Görüntünün gerilmesini önlemek için slaytın en‑boy oranına uygun boyutlar seçin.
#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/Presentation.h>
#include <IImage.h>
#include <ImageFormat.h>
#include <system/string.h>
#include <drawing/size.h>
using namespace Aspose::Slides;
using namespace System;
auto presentation = MakeObject<Presentation>(u"presentation.pptx");
auto imageSize = System::Drawing::Size(960, 720);
auto slideCount = presentation->get_Slides()->get_Count();
for (auto index = 0; index < slideCount; index++)
{
auto slide = presentation->get_Slide(index);
auto image = slide->GetImage(imageSize);
image->Save(String::Format(u"slide_{0}.png", index), ImageFormat::Png);
image->Dispose();
}
presentation->Dispose();
Bir Degrade Render Stili Seçin
Bir slayt degrade doldurmalar içeriyorsa, dışa aktarılan PNG’deki geçişler PowerPoint’te gördüklerinizden daha açık ya da farklı görünebilir. Degraderin nasıl render edileceğini seçmek için RenderingOptions içindeki SaveOptions::set_GradientStyle metodunu kullanabilirsiniz.
gradient-styles.pptx dosyasını indirin ve uygulamanın çalışma dizinine yerleştirin. İlk slaytı iki lineer degrade içerir: üstte camgöbeği‑turuncu, altta mavi‑sarı. Her degrade iki durak içerir, %0 ve %100 konumlarında.
Aşağıdaki örnek bu sunumu yükler ve aynı ilk slaytı iki modda ISlide::GetImage ile render eder.
#include <DOM/ISlide.h>
#include <DOM/ISlideCollection.h>
#include <DOM/Presentation.h>
#include <IImage.h>
#include <ImageFormat.h>
#include <system/string.h>
#include <DOM/GradientStyle.h>
#include <Export/RenderingOptions.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
auto presentation = MakeObject<Presentation>(u"gradient-styles.pptx");
auto slide = presentation->get_Slide(0);
auto gradientStyles = { GradientStyle::Default, GradientStyle::PowerPointUI };
for (auto style : gradientStyles)
{
auto options = MakeObject<RenderingOptions>();
options->set_GradientStyle(style);
auto image = slide->GetImage(options, 1.f, 1.f);
auto styleName = style == GradientStyle::Default ? u"Default" : u"PowerPointUI";
image->Save(String::Format(u"gradient-{0}.png", styleName), ImageFormat::Png);
image->Dispose();
}
presentation->Dispose();
| Varsayılan | PowerPointUI |
|---|---|
![]() |
![]() |
Bu örnekte, Default daha açık ara renkler üretirken, PowerPointUI daha koyu ara renkler üretir. Fark, degrade içindeki renkler ve duraklara bağlıdır.
Standart Aspose.Slides çıktısı ihtiyaçlarınızı karşılıyorsa Default seçin. Önceliğiniz PowerPoint’teki görünümle eşleşmekse PowerPointUI deneyin. Her iki çıktıyı da hedef sonucunuzla karşılaştırın; hiçbir mod evrensel olarak daha iyidir.
SSS
Bir grafiği veya resmi gibi belirli bir şekli, tüm slayt yerine nasıl dışa aktarabilirim?
Aspose.Slides, tek tek şekiller için küçük resimler oluşturmayı destekler; böylece bir şekli PNG görüntüsü olarak render edebilirsiniz.
Sunucuda paralel dönüşüm destekleniyor mu?
Evet. Her iş parçacığı veya süreç için ayrı bir sunum örneği kullanın; tek bir örneği iş parçacıkları arasında paylaşmayın.
PNG’ye dışa aktarırken değerlendirme sınırlamaları nelerdir?
Değerlendirme modu, çıktı görüntülerine bir filigran ekler ve lisans uygulanana kadar diğer kısıtlamaları uygular.

