Folie konvertieren

Aspose.Slides für C++ ermöglicht es Ihnen, Folien (in Präsentationen) in Bilder zu konvertieren. Dies sind die unterstützten Bildformate: BMP, PNG, JPG (JPEG), GIF und andere.

Um eine Folie in ein Bild zu konvertieren, tun Sie Folgendes:

  1. Zuerst legen Sie die Konvertierungsparameter und die zu konvertierenden Folienobjekte fest, indem Sie:

  2. Zweitens konvertieren Sie die Folie in ein Bild, indem Sie die GetImage Methode verwenden.

Über Bitmap und andere Bildformate

Ein Bitmap ist ein Objekt, das es Ihnen ermöglicht, mit Bildern zu arbeiten, die durch Pixel-Daten definiert sind. Sie können eine Instanz dieser Klasse verwenden, um Bilder in einer Vielzahl von Formaten (BMP, JPG, PNG usw.) zu speichern.

Konvertieren von Folien in Bitmap und Speichern der Bilder im PNG-Format

Dieser C++-Code zeigt Ihnen, wie Sie die erste Folie einer Präsentation in ein Bitmap-Objekt konvertieren und dann das Bild im PNG-Format speichern:

auto pres = System::MakeObject<Presentation>(u"Presentation.pptx");

// Konvertieren Sie die erste Folie der Präsentation in ein Bitmap-Objekt
System::SharedPtr<IImage> image = pres->get_Slide(0)->GetImage();
                 
// Speichern Sie das Bild im PNG-Format
image->Save(u"Slide_0.png", ImageFormat::Png);

Konvertieren von Folien in Bilder mit benutzerdefinierten Größen

Es kann sein, dass Sie ein Bild einer bestimmten Größe benötigen. Mit einer Überladung von GetImage können Sie eine Folie in ein Bild mit spezifischen Abmessungen (Länge und Breite) konvertieren.

Dieser Beispielcode zeigt die vorgeschlagene Konvertierung mit der GetImage Methode in C++:

auto pres = System::MakeObject<Presentation>(u"Presentation.pptx");
// Konvertiert die erste Folie der Präsentation in ein Bitmap mit der angegebenen Größe
auto image = pres->get_Slide(0)->GetImage(Size(1820, 1040));
// Speichert das Bild im JPEG-Format
image->Save(u"Slide_0.jpg", ImageFormat::Jpeg);

Konvertieren von Folien mit Notizen und Kommentaren in Bilder

Einige Folien enthalten Notizen und Kommentare.

Aspose.Slides bietet zwei Schnittstellen—ITiffOptions und IRenderingOptions—die Ihnen die Kontrolle über das Rendern von Präsentationsfolien zu Bildern ermöglichen. Beide Schnittstellen beinhalten die INotesCommentsLayoutingOptions Schnittstelle, die es Ihnen ermöglicht, Notizen und Kommentare auf einer Folie hinzuzufügen, wenn Sie diese Folie in ein Bild konvertieren.

Dieser C++-Code zeigt den Konvertierungsprozess für eine Folie mit Notizen und Kommentaren:

auto pres = System::MakeObject<Presentation>(u"PresentationNotesComments.pptx");
// Erstellt die Rendering-Optionen
auto options = System::MakeObject<RenderingOptions>();
auto notesCommentsLayouting = options->get_NotesCommentsLayouting();
// Legt die Position der Notizen auf der Seite fest
notesCommentsLayouting->set_NotesPosition(NotesPositions::BottomTruncated);
// Legt die Position der Kommentare auf der Seite fest
notesCommentsLayouting->set_CommentsPosition(CommentsPositions::Right);
// Legt die Breite des Kommentarausgabebereichs fest
notesCommentsLayouting->set_CommentsAreaWidth(500);
// Legt die Farbe für den Kommentarausgabebereich fest
notesCommentsLayouting->set_CommentsAreaColor(Color::get_AntiqueWhite());

// Konvertiert die erste Folie der Präsentation in ein Bitmap-Objekt
auto image = pres->get_Slide(0)->GetImage(options, 2.f, 2.f);

// Speichert das Bild im GIF-Format
image->Save(u"Slide_Notes_Comments_0.gif", ImageFormat::Gif);

Konvertieren von Folien in Bilder mit ITiffOptions

Die ITiffOptions Schnittstelle gibt Ihnen mehr Kontrolle (in Bezug auf Parameter) über das resultierende Bild. Mit dieser Schnittstelle können Sie die Größe, Auflösung, Farbpalette und andere Parameter für das resultierende Bild angeben.

Dieser C++-Code demonstriert einen Konvertierungsprozess, bei dem ITiffOptions verwendet wird, um ein schwarz-weiß Bild mit einer Auflösung von 300dpi und einer Größe von 2160 × 2800 zu erzeugen:

System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(u"PresentationNotesComments.pptx");

// Holen Sie sich eine Folie nach ihrem Index
System::SharedPtr<ISlide> slide = pres->get_Slide(0);

// Erstellen Sie ein TiffOptions-Objekt
System::SharedPtr<TiffOptions> options = System::MakeObject<TiffOptions>();
options->set_ImageSize(Size(2160, 2880));

// Legen Sie die Schriftart fest, die verwendet wird, falls die Quellschriftart nicht gefunden wird
options->set_DefaultRegularFont(u"Arial Black");

// Legen Sie die Position der Notizen auf der Seite fest
options->get_NotesCommentsLayouting()->set_NotesPosition(NotesPositions::BottomTruncated);

// Legen Sie das Pixel-Format (schwarz-weiß) fest
options->set_PixelFormat(ImagePixelFormat::Format1bppIndexed);

// Legen Sie die Auflösung fest
options->set_DpiX(300);
options->set_DpiY(300);

// Konvertieren Sie die Folie in ein Bitmap-Objekt
System::SharedPtr<Bitmap> image = slide->GetImage(options);

// Speichern Sie das Bild im BMP-Format
image->Save(u"PresentationNotesComments.bmp", ImageFormat::Tiff);

Konvertieren aller Folien in Bilder

Aspose.Slides ermöglicht es Ihnen, alle Folien in einer einzigen Präsentation in Bilder zu konvertieren. Im Wesentlichen können Sie die gesamte Präsentation in Bilder konvertieren.

Dieser Beispielcode zeigt Ihnen, wie Sie alle Folien in einer Präsentation in Bilder in C++ konvertieren:

// Pfad zum Ausgabeverzeichnis
System::String outputDir = u"D:\\PresentationImages";

auto pres = System::MakeObject<Presentation>(u"Presentation.pptx");

// Rendert die Präsentation in ein Array von Bildern, Folie für Folie
for (int32_t i = 0; i < pres->get_Slides()->get_Count(); i++)
{
    // Steuerung versteckter Folien (versteckte Folien nicht rendern)
    if (pres->get_Slide(i)->get_Hidden())
    {
        continue;
    }

    // Konvertiert die Folie in ein Bitmap-Objekt
    auto image = pres->get_Slide(i)->GetImage(2.f, 2.f);

    // Erstellt den Dateinamen für ein Bild
    auto outputFilePath = Path::Combine(outputDir, String(u"Slide_") + i + u".jpg");

    // Speichert das Bild im PNG-Format
    image->Save(outputFilePath, ImageFormat::Png);
}