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
- Java’daki bir PPT’den Görüntüleri Çıkarın
- PPTX’teki Şekillerden Görüntüleri Çıkarın
- PPT Slayt Arka Planından Görüntü Çıkarma
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.
İlk olarak, Sunum sınıfını kullanarak sunumu yükleyin.
Ardından, Presentation.getSlides() yöntemini kullanarak sunumdaki slaytlar arasında geçiş yapın.
Her slayt için aşağıdaki adımları gerçekleştirin:
ISlide.getBackground().getFillFormat().getFillType() yöntemini kullanarak slaydın arka plan resmi olup olmadığını kontrol edin.
Arka planda resim varsa, getImage() yöntemini kullanarak görüntüyü çıkarın.
ISlide.getLayoutSlide().getBackground().getFillFormat().getFillType() yöntemini kullanarak düzen slaydının arka plan resmi olup olmadığını kontrol edin.
Düzen slaydının arka planı bir resimle doluysa, getImage() yöntemini kullanarak ayıklayın.
Son olarak, çıkarılan görüntüyü bir dosya olarak kaydedin.
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.