Folie konvertieren

Aspose.Slides für PHP über Java 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 Folienobjekte, die konvertiert werden sollen, fest, indem Sie:

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

Über Bitmap und andere Bildformate

In Java ist ein Images 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 (JPG, PNG usw.) zu speichern.

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

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

  $pres = new Presentation("Presentation.pptx");
  try {
    # Konvertiert die erste Folie in der Präsentation in ein Images-Objekt
    $slideImage = $pres->getSlides()->get_Item(0)->getImage();
    # Speichert das Bild im PNG-Format
    try {
      # speichert das Bild auf der Festplatte.
      $slideImage->save("Slide_0.png", ImageFormat::Png);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Dieser Beispielcode zeigt Ihnen, wie Sie die erste Folie einer Präsentation in ein Bitmap-Objekt konvertieren, indem Sie die getImage Methode verwenden:

  $pres = new Presentation("Presentation.pptx");
  try {
    # Holt die Größe der Präsentationsfolie
    $slideSize = new Java("java.awt.Dimension", $slideSize->getWidth(), $slideSize->getHeight());
    # Erstellt ein Images mit der Foliengröße
    $slideImage = $sld->getImage(new RenderingOptions(), $slideSize);
    try {
      # speichert das Bild auf der Festplatte.
      $slideImage->save("Slide_0.png", ImageFormat::Png);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Konvertieren von Folien in Bilder mit benutzerdefinierten Größen

Vielleicht müssen Sie ein Bild einer bestimmten Größe erhalten. Mit einer Überladung der getImage Methode können Sie eine Folie in ein Bild mit bestimmten Abmessungen (Länge und Breite) konvertieren.

Dieser Beispielcode demonstriert die vorgeschlagene Konvertierung unter Verwendung der getImage Methode:

  $pres = new Presentation("Presentation.pptx");
  try {
    # Konvertiert die erste Folie in der Präsentation in ein Bitmap mit der angegebenen Größe
    $slideImage = $pres->getSlides()->get_Item(0)->getImage(new Java("java.awt.Dimension", 1820, 1040));
    # Speichert das Bild im JPEG-Format
    try {
      # speichert das Bild auf der Festplatte.
      $slideImage->save("Slide_0.jpg", ImageFormat::Jpeg);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Konvertieren von Folien mit Notizen und Kommentaren zu Bildern

Einige Folien enthalten Notizen und Kommentare.

Aspose.Slides bietet zwei Schnittstellen—ITiffOptions und IRenderingOptions—die es Ihnen ermöglichen, das Rendering von Präsentationsfolien in Bilder zu steuern. Beide Schnittstellen verfügen über 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 PHP-Code demonstriert den Konvertierungsprozess für eine Folie mit Notizen und Kommentaren:

  $pres = new Presentation("PresentationNotesComments.pptx");
  try {
    # Erstellt die Rendering-Optionen
    $options = new RenderingOptions();
    # Setzt die Position der Notizen auf der Seite
    $options->getNotesCommentsLayouting()->setNotesPosition(NotesPositions::BottomTruncated);
    # Setzt die Position der Kommentare auf der Seite
    $options->getNotesCommentsLayouting()->setCommentsPosition(CommentsPositions::Right);
    # Setzt die Breite des Kommentarausgabebereichs
    $options->getNotesCommentsLayouting()->setCommentsAreaWidth(500);
    # Setzt die Farbe für den Kommentarausgabebereich
    $options->getNotesCommentsLayouting()->setCommentsAreaColor(java("java.awt.Color")->LIGHT_GRAY);
    # Konvertiert die erste Folie der Präsentation in ein Bitmap-Objekt
    $slideImage = $pres->getSlides()->get_Item(0)->getImage($options, 2.0, 2.0);
    # Speichert das Bild im GIF-Format
    try {
      $slideImage->save("Slide_Notes_Comments_0.gif", ImageFormat::Gif);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Dieser PHP-Code demonstriert den Konvertierungsprozess für eine Folie mit Notizen unter Verwendung der getImage Methode:

  $pres = new Presentation("PresentationNotes.pptx");
  try {
    # Holt die Größe der Präsentationsnotizen
    $notesSize = $pres->getNotesSize()->getSize();
    # Erstellt die Rendering-Optionen
    $options = new RenderingOptions();
    # Setzt die Position der Notizen
    $options->getNotesCommentsLayouting()->setNotesPosition(NotesPositions::BottomTruncated);
    # Erstellt ein Images mit der Größe der Notizen
    $slideImage = $pres->getSlides()->get_Item(0)->getImage($options, $notesSize);
    # Speichert das Bild im PNG-Format
    try {
      # speichert das Bild auf der Festplatte.
      $slideImage->save("Slide_0.png", ImageFormat::Png);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Konvertieren von Folien zu Bildern unter Verwendung von 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 PHP-Code demonstriert einen Konvertierungsprozess, bei dem ITiffOptions verwendet wird, um ein schwarz-weiß-Bild mit einer Auflösung von 300 dpi und einer Größe von 2160 × 2800 auszugeben:

  $pres = new Presentation("PresentationNotesComments.pptx");
  try {
    # Holt eine Folie nach ihrem Index
    $slide = $pres->getSlides()->get_Item(0);
    # Erstellt ein TiffOptions-Objekt
    $options = new TiffOptions();
    $options->setImageSize(new Java("java.awt.Dimension", 2160, 2880));
    # Setzt die Schriftart, die verwendet wird, falls die Quelldatei nicht gefunden wird
    $options->setDefaultRegularFont("Arial Black");
    # Setzt die Position der Notizen auf der Seite
    $options->getNotesCommentsLayouting()->setNotesPosition(NotesPositions::BottomTruncated);
    # Setzt das Pixel-Format (schwarz-weiß)
    $options->setPixelFormat(ImagePixelFormat::Format1bppIndexed);
    # Setzt die Auflösung
    $options->setDpiX(300);
    $options->setDpiY(300);
    # Konvertiert die Folie in ein Bitmap-Objekt
    $slideImage = $slide->getImage($options);
    # Speichert das Bild im TIFF-Format
    try {
      $slideImage->save("PresentationNotesComments.tiff", ImageFormat::Tiff);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Konvertieren aller Folien in Bilder

Aspose.Slides ermöglicht es Ihnen, alle Folien in einer einzelnen 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 konvertieren:

  $pres = new Presentation("Presentation.pptx");
  try {
    # Rendert die Präsentation in ein Bilder-Array, folie für folie
    for($i = 0; $i < java_values($pres->getSlides()->size()) ; $i++) {
      # Kontrolliert versteckte Folien (rendert keine versteckten Folien)
      if ($pres->getSlides()->get_Item($i)->getHidden()) {
        continue;
      }
      # Konvertiert die Folie in ein Bitmap-Objekt
      $slideImage = $pres->getSlides()->get_Item($i)->getImage(2.0, 2.0);
      # Speichert das Bild im PNG-Format
      try {
        $slideImage->save("Slide_" . $i . ".png", ImageFormat::Png);
      } finally {
        if (!java_is_null($slideImage)) {
          $slideImage->dispose();
        }
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }