Java'daki PowerPoint PPT'den Görüntüleri Çıkarın

Bazı durumlarda, metinle birlikte PowerPoint sunumlarından görüntüleri çıkarmanız gerekebilir. Bunu başarmak için bu makale, Java’da programlı olarak PowerPoint PPT veya PPTX‘den görüntülerin nasıl çıkarılacağını kapsar. Ayrıca, PPT slaytlarındaki görüntüleri yalnızca arka planlardan veya şekillerden nasıl çıkaracağınızı da öğreneceksiniz.

PowerPoint PPT’den Görüntüleri Ayıklamak için Java API

Aspose.Slides for Java, PowerPoint sunumlarını sorunsuz bir şekilde oluşturmanıza ve değiştirmenize olanak tanıyan popüler ve zengin özelliklere sahip bir API’dir. PPT/PPTX dosyalarından görüntüleri çıkarmak için bu API’yi kullanacağız. API’nin JAR’ını indirebilir veya aşağıdaki Maven yapılandırmalarını kullanarak yükleyebilirsiniz.

Depo:

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

Bağımlılık:

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

Java’daki bir PowerPoint PPT’den Görüntüleri Çıkarın

PowerPoint sunumlarında, slaytlarda kullanılan tüm resimler bir resim koleksiyonunda saklanır. Bu koleksiyona erişilebilir ve her görüntü bir dosya olarak kaydedilebilir. Java’da bir PPT sunumundaki tüm görüntüleri ayıklamak için gereken adımlar aşağıdadır.

  • İlk olarak, PPT/PPTX sunumunu yüklemek için Sunum sınıfını kullanın.
  • Ardından, Presentation.getImages() yöntemini kullanarak sunumdaki görüntü koleksiyonuna erişin.
  • Son olarak, her görüntünün türünü ve biçimini alın ve kaydedin.

Aşağıdaki kod örneği, Java’da bir PowerPoint PPTX dosyasından görüntülerin nasıl çıkarılacağını gösterir.

// sunuyu yükle
Presentation pres = new Presentation("presentation.pptx");

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

// Görüntüler arasında döngü
for (IPPImage image : pres.getImages()) {
  // Resim türünü al
  imageType = image.getContentType();
  imageType = imageType.substring(imageType.indexOf("/") + 1, imageType.length());

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

Java’daki PPTX Şekillerinden Görüntüleri Çıkarın

Ayrıca görüntüleri yalnızca PPT slaytlarındaki şekillerden çıkarabilirsiniz. Bunu başarmak için adımlar aşağıdadır.

  • İlk olarak, sunum dosyasını yüklemek için Sunum sınıfını kullanın.
  • Ardından, slayt koleksiyonuna erişmek için Presentation.getSlides() yöntemini kullanın.
  • Her slayt için, ISlide.getShapes() yöntemini kullanarak şekillerine erişin.
  • Koleksiyondaki her şekil için aşağıdaki adımları gerçekleştirin:
    • Şeklin otomatik bir şekil olup olmadığını ve bir resimle doldurulup doldurulmadığını kontrol edin, ardından getImage() yöntemini kullanarak görüntüsünü çıkarın.
    • Şeklin bir resim çerçevesi olup olmadığını kontrol edin ve ardından getImage() yöntemini kullanarak görüntüsünü çıkarın.
    • Son olarak, görüntüyü bir dosya olarak kaydedin.

Aşağıdaki kod örneği, Java kullanarak bir PPT’deki şekillerden görüntülerin nasıl çıkarılacağını gösterir.

// sunuyu yükle
Presentation pres = new Presentation("presentation.pptx");

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

// Slaytlar arasında geçiş yapma
for (int i = 0; i < pres.getSlides().size(); i++) {
  slideIndex++;

  // Erişim slaytı
  ISlide sl = pres.getSlides().get_Item(i);

 for (int j = 0; j < sl.getShapes().size(); j++) {
    // Şekle erişin
    IShape sh = sl.getShapes().get_Item(j);

    // Otomatik şekil olup olmadığını kontrol edin
    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;
      }
    }

    // Şekil bir resim çerçevesi ise
    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;
    }

    // İstenen resim formatını ayarlayın
    if (isImageFound) {
      try {
        ImageIO.write(img.getSystemImage(), imageType,
            new File("Slide_" + slideIndex + "_Shape_" + j + "." + imageType));
      } catch (IOİstisna ex) {
        // İstisna
      }
    }
    isImageFound = false;
  }
}

PPT Slayt Arka Planlarından Java Görüntü Çıkarma

Başka bir olası senaryo, yalnızca slayt arka planı olarak kullanılan görüntüleri çıkarmak olabilir. Aşağıdaki adımlar, Java’da slayt arka plan resimlerinin nasıl çıkarılacağını gösterir.

Aşağıdaki kod örneği, Java’daki bir PPT’de slayt arka planlarından görüntülerin nasıl çıkarılacağını gösterir.

// sunuyu yükle
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++;

  // Erişim slaytı
  ISlide sl = pres.getSlides().get_Item(i);

  // Arka planın resimle dolu olup olmadığını kontrol edin
  if (sl.getBackground().getFillFormat().getFillType() == FillType.Picture) {
    // Arka plan resmini al
    backImage = sl.getBackground().getFillFormat().getPictureFillFormat().getPicture().getImage();

    // Resmi Kaydet
    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) {
      // istisna mesajını oku
    }
  } else {
    // slayt düzeninde görüntü arka planı olup olmadığını kontrol edin
    if (sl.getLayoutSlide().getBackground().getFillFormat().getFillType() == FillType.Picture) {

      // Arka plan resmini al
      backImage = sl.getLayoutSlide().getBackground().getFillFormat().getPictureFillFormat().getPicture()
          .getImage();

      // Resmi Kaydet
      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) {
        // istisna mesajını oku
      }
    }
  }
}

Java PowerPoint Image Extraction API - Ücretsiz Lisans Alın

Aspose, Aspose.Slides for Java’yı değerlendirme sınırlamaları olmaksızın kullanmak için ücretsiz bir geçici lisans sunar. Kendine bir tane alabilirsin.

Çözüm

Bu makalede, Java’da PowerPoint PPT/PPTX’ten görüntülerin nasıl çıkarılacağını gösterdik. Ek olarak, görüntülerin şekilden veya slayt arka planlarından ayrı ayrı nasıl çıkarılacağını ele aldık. Ayrıca belgeleri ziyaret ederek Aspose.Slides for Java hakkında daha fazla bilgi edinebilirsiniz. Ayrıca, sorularınızı forumumuza gönderebilirsiniz.

Ayrıca bakınız