Convert Slide

Aspose.Slides for PHP via Java allows you to convert slides (in presentations) to images. These are the supported image formats: BMP, PNG, JPG (JPEG), GIF, and others.

To convert a slide to an image, do this:

  1. First, set the conversion parameters and the slide objects to convert using:

  2. Second, convert the slide to an image by using the getImage method.

About Bitmap and Other Image Formats

In Java, a Images is an object that allows you to work with images defined by pixel data. You can use an instance of this class to save images in a wide range of formats (JPG, PNG, etc.).

Converting Slides to Bitmap and Saving the Images in PNG

This PHP code shows you how to convert the first slide of a presentation to a bitmap object and then how to then save the image in the PNG format:

  $pres = new Presentation("Presentation.pptx");
  try {
    # Converts the first slide in the presentation to a Images object
    $slideImage = $pres->getSlides()->get_Item(0)->getImage();
    # Saves the image in the PNG format
    try {
      # save the image on the disk.
      $slideImage->save("Slide_0.png", ImageFormat::Png);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

This sample code shows you how to convert the first slide of a presentation to a bitmap object using the getImage method:

  $pres = new Presentation("Presentation.pptx");
  try {
    # Gets the presentation slide size
    $slideSize = new Java("java.awt.Dimension", $slideSize->getWidth(), $slideSize->getHeight());
    # Creates a Images with the slide size
    $slideImage = $sld->getImage(new RenderingOptions(), $slideSize);
    try {
      # save the image on the disk.
      $slideImage->save("Slide_0.png", ImageFormat::Png);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Converting Slides to Images with Custom Sizes

You may need to get an image of a certain size. Using an overload from the getImage method, you can convert a slide to an image with specific dimensions (length and width).

This sample code demonstrates the proposed conversion using the getImage method :

  $pres = new Presentation("Presentation.pptx");
  try {
    # Converts the first slide in the presentation to a Bitmap with the specified size
    $slideImage = $pres->getSlides()->get_Item(0)->getImage(new Java("java.awt.Dimension", 1820, 1040));
    # Saves the image in the JPEG format
    try {
      # save the image on the disk.
      $slideImage->save("Slide_0.jpg", ImageFormat::Jpeg);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Converting Slides With Notes and Comments to Images

Some slides contain notes and comments.

Aspose.Slides provides two interfaces—ITiffOptions and IRenderingOptions—that allow you to control the rendering of presentation slides to images. Both interfaces house the INotesCommentsLayoutingOptions interface that allows you to add notes and comments on a slide when you are converting that slide to an image.

This PHP code demonstrates the conversion process for a slide with notes and comments:

  $pres = new Presentation("PresentationNotesComments.pptx");
  try {
    # Creates the rendering options
    $options = new RenderingOptions();
    # Sets the position of the notes on the page
    $options->getNotesCommentsLayouting()->setNotesPosition(NotesPositions::BottomTruncated);
    # Sets the position of the comments on the page
    $options->getNotesCommentsLayouting()->setCommentsPosition(CommentsPositions::Right);
    # Sets the width of the comment output area
    $options->getNotesCommentsLayouting()->setCommentsAreaWidth(500);
    # Sets the color for the comments area
    $options->getNotesCommentsLayouting()->setCommentsAreaColor(java("java.awt.Color")->LIGHT_GRAY);
    # Converts the first slide of the presentation to a Bitmap object
    $slideImage = $pres->getSlides()->get_Item(0)->getImage($options, 2.0, 2.0);
    # Saves the image in the 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();
    }
  }

This PHP code demonstrates the conversion process for a slide with notes using the getImage method:

  $pres = new Presentation("PresentationNotes.pptx");
  try {
    # Gets the presentation notes size
    $notesSize = $pres->getNotesSize()->getSize();
    # Creates the rendering options
    $options = new RenderingOptions();
    # Sets the position of the notes
    $options->getNotesCommentsLayouting()->setNotesPosition(NotesPositions::BottomTruncated);
    # Creates a Images with the notes' size
    $slideImage = $pres->getSlides()->get_Item(0)->getImage($options, $notesSize);
    # Saves the image in PNG format
    try {
      # save the image on the disk.
      $slideImage->save("Slide_0.png", ImageFormat::Png);
    } finally {
      if (!java_is_null($slideImage)) {
        $slideImage->dispose();
      }
    }
  } finally {
    if (!java_is_null($pres)) {
      $pres->dispose();
    }
  }

Converting Slides to Images Using ITiffOptions

The ITiffOptions interface gives you more control (in terms of parameters) over the resulting image. Using this interface, you get to specify the size, resolution, color palette, and other parameters for the resulting image.

This PHP code demonstrates a conversion process where ITiffOptions is used to output a black and white image with a 300dpi resolution and 2160 × 2800 size:

  $pres = new Presentation("PresentationNotesComments.pptx");
  try {
    # Gets a slide by its index
    $slide = $pres->getSlides()->get_Item(0);
    # Creates a TiffOptions object
    $options = new TiffOptions();
    $options->setImageSize(new Java("java.awt.Dimension", 2160, 2880));
    # Set the font used in case source font is not found
    $options->setDefaultRegularFont("Arial Black");
    # Set the position of the notes on the page
    $options->getNotesCommentsLayouting()->setNotesPosition(NotesPositions::BottomTruncated);
    # Sets the pixel format (black and white)
    $options->setPixelFormat(ImagePixelFormat::Format1bppIndexed);
    # Sets the resolution
    $options->setDpiX(300);
    $options->setDpiY(300);
    # Converts the slide to a Bitmap object
    $slideImage = $slide->getImage($options);
    # Saves the image in 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();
    }
  }

Converting All Slides to Images

Aspose.Slides allows you to convert all slides in a single presentation to images. Essentially, you get to convert the presentation (in its entirety) to images.

This sample code shows you how to convert all slides in a presentation to images :

  $pres = new Presentation("Presentation.pptx");
  try {
    # Render presentation to images array slide by slide
    for($i = 0; $i < java_values($pres->getSlides()->size()) ; $i++) {
      # Control hidden slides (do not render hidden slides)
      if ($pres->getSlides()->get_Item($i)->getHidden()) {
        continue;
      }
      # Convert slide to a Bitmap object
      $slideImage = $pres->getSlides()->get_Item($i)->getImage(2.0, 2.0);
      # Save the image in 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();
    }
  }