Ekstrak Gambar dari PowerPoint PPT di Jawa

Dalam kasus tertentu, Anda mungkin perlu mengekstrak gambar dari presentasi PowerPoint beserta teksnya. Untuk mencapainya, artikel ini membahas cara mengekstrak gambar dari PowerPoint PPT atau PPTX secara terprogram di Java. Anda juga akan belajar cara mengekstrak gambar hanya dari latar belakang atau bentuk di slide PPT.

Java API untuk Mengekstrak Gambar dari PowerPoint PPT

Aspose.Slides for Java adalah API populer dan kaya fitur yang memungkinkan Anda membuat dan memanipulasi presentasi PowerPoint dengan mulus. Kami akan menggunakan API ini untuk mengekstrak gambar dari file PPT/PPTX. Anda dapat mengunduh JAR API atau menginstalnya menggunakan konfigurasi Maven berikut.

Gudang:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>

Ketergantungan:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-slides</artifactId>
    <version>22.1</version>
    <classifier>jdk16</classifier>
</dependency>

Ekstrak Gambar dari PowerPoint PPT di Java

Dalam presentasi PowerPoint, semua gambar yang digunakan dalam slide disimpan dalam koleksi gambar. Koleksi ini dapat diakses dan setiap gambar dapat disimpan sebagai file. Berikut ini adalah langkah-langkah untuk mengekstrak semua gambar dalam presentasi PPT di Jawa.

  • Pertama, gunakan kelas Presentation untuk memuat presentasi PPT/PPTX.
  • Kemudian, akses koleksi gambar dalam presentasi menggunakan metode Presentation.getImages().
  • Terakhir, dapatkan jenis dan format setiap gambar dan simpan.

Contoh kode berikut menunjukkan cara mengekstrak gambar dari file PowerPoint PPTX di Java.

// Muat presentasi
Presentation pres = new Presentation("presentation.pptx");

int imageIndex = 1;
String imageType = "";
String imagePath = "Image_";

// Ulangi melalui gambar
for (IPPImage image : pres.getImages()) {
  // Dapatkan jenis gambar
  imageType = image.getContentType();
  imageType = imageType.substring(imageType.indexOf("/") + 1, imageType.length());

  // Menyimpan gambar
  try {
    ImageIO.write(image.getSystemImage(), imageType, new File(imagePath + imageIndex + "." + imageType.toString()));
  } catch (IOException ex) {
    System.out.println(ex.getMessage());
  }
  imageIndex++;
}

Ekstrak Gambar dari Bentuk PPTX di Jawa

Anda juga dapat mengekstrak gambar hanya dari bentuk di slide PPT. Berikut ini adalah langkah-langkah untuk mewujudkannya.

  • Pertama, gunakan kelas Presentation untuk memuat file presentasi.
  • Kemudian, gunakan metode Presentation.getSlides() untuk mengakses koleksi slide.
  • Untuk setiap slide, akses bentuknya menggunakan metode ISlide.getShapes().
  • Lakukan langkah-langkah berikut untuk setiap bentuk dalam koleksi:
    • Periksa apakah bentuknya adalah bentuk otomatis dan diisi dengan gambar lalu ekstrak gambarnya menggunakan metode getImage().
    • Periksa apakah bentuknya adalah bingkai foto lalu ekstrak gambarnya menggunakan metode getImage().
    • Terakhir, simpan gambar sebagai file.

Contoh kode berikut menunjukkan cara mengekstrak gambar dari bentuk di PPT menggunakan Java.

// Muat presentasi
Presentation pres = new Presentation("presentation.pptx");

com.aspose.slides.IPPImage img = null;
int slideIndex = 0;
String imageType = "";
boolean isImageFound = false;

// Ulangi slide
for (int i = 0; i < pres.getSlides().size(); i++) {
  slideIndex++;

  // Akses slide
  ISlide sl = pres.getSlides().get_Item(i);

 for (int j = 0; j < sl.getShapes().size(); j++) {
    // Akses bentuknya
    IShape sh = sl.getShapes().get_Item(j);

    // Periksa apakah itu bentuk otomatis
    if (sh instanceof IAutoShape) {
      IAutoShape ashp = (IAutoShape) sh;
      if (ashp.getFillFormat().getFillType() == FillType.Picture) {
        img = ashp.getFillFormat().getPictureFillFormat().getPicture().getImage();
        imageType = img.getContentType();
        imageType = imageType.substring(0, imageType.indexOf("/") + 1);
        isImageFound = true;
      }
    }

    // Jika bentuknya adalah bingkai foto
    else if (sh instanceof IPictureFrame) {
      IPictureFrame pf = (IPictureFrame) sh;
      img = pf.getPictureFormat().getPicture().getImage();
      imageType = img.getContentType();
      imageType = imageType.substring(imageType.indexOf("/") + 1, imageType.length());
      isImageFound = true;
    }

    // Atur format gambar yang diinginkan
    if (isImageFound) {
      try {
        ImageIO.write(img.getSystemImage(), imageType,
            new File("Slide_" + slideIndex + "_Shape_" + j + "." + imageType));
      } catch (IOPengecualian ex) {
        // Pengecualian
      }
    }
    isImageFound = false;
  }
}

Ekstraksi Gambar Java dari Latar Belakang Slide PPT

Skenario lain yang mungkin adalah mengekstraksi gambar yang hanya digunakan sebagai latar belakang slide. Langkah-langkah berikut menunjukkan cara mengekstrak gambar latar slide di Java.

Contoh kode berikut menunjukkan cara mengekstrak gambar dari latar belakang slide dalam PPT di Java.

// Muat presentasi
Presentation pres = new Presentation("presentation.pptx");

com.aspose.slides.IPPImage img = null;
com.aspose.slides.IPPImage backImage = null;

String ImagePath = "BackImage_";
int slideIndex = 0;
String imageType = "";
for (int i = 0; i < pres.getSlides().size(); i++) {
  slideIndex++;

  // Akses slide
  ISlide sl = pres.getSlides().get_Item(i);

  // Periksa apakah latar belakang diisi dengan gambar
  if (sl.getBackground().getFillFormat().getFillType() == FillType.Picture) {
    // Dapatkan gambar latar belakang
    backImage = sl.getBackground().getFillFormat().getPictureFillFormat().getPicture().getImage();

    // Simpan gambar
    BufferedImage image = backImage.getSystemImage();
    imageType = backImage.getContentType();
    imageType = imageType.substring(imageType.indexOf("/") + 1, imageType.length());

    try {
      ImageIO.write(image, imageType,
          new File(ImagePath + "Slide_" + slideIndex + "." + imageType.toString()));
    } catch (IOException ex) {
      // membaca pesan pengecualian
    }
  } else {
    // periksa apakah tata letak slide memiliki latar belakang gambar
    if (sl.getLayoutSlide().getBackground().getFillFormat().getFillType() == FillType.Picture) {

      // Dapatkan gambar latar belakang
      backImage = sl.getLayoutSlide().getBackground().getFillFormat().getPictureFillFormat().getPicture()
          .getImage();

      // Menyimpan gambar
      BufferedImage image = backImage.getSystemImage();
      imageType = backImage.getContentType();
      imageType = imageType.substring(imageType.indexOf("/") + 1, imageType.length());

      try {
        ImageIO.write(image, imageType,
            new File(ImagePath + "LayoutSlide_" + slideIndex + "." + imageType.toString()));
      } catch (IOException ex) {
        // membaca pesan pengecualian
      }
    }
  }
}

API Ekstraksi Gambar PowerPoint Java - Dapatkan Lisensi Gratis

Aspose menawarkan lisensi sementara gratis untuk menggunakan Aspose.Slides for Java tanpa batasan evaluasi. Anda bisa dapatkan sendiri.

Kesimpulan

Pada artikel ini, kami telah mendemonstrasikan cara mengekstrak gambar dari PowerPoint PPT/PPTX di Java. Selain itu, kami telah membahas cara mengekstrak gambar baik dari bentuk atau latar belakang slide secara terpisah. Selain itu, Anda dapat membaca lebih lanjut tentang Aspose.Slides for Java dengan mengunjungi dokumentasi. Selain itu, Anda dapat memposting pertanyaan Anda ke forum kami.

Lihat juga