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
- Ekstrak Gambar dari PPT di Jawa
- Ekstrak Gambar dari Bentuk di PPTX
- Ekstraksi Gambar dari Latar Belakang 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.
Pertama, muat presentasi menggunakan kelas Presentation.
Kemudian, ulangi slide dalam presentasi menggunakan metode Presentation.getSlides().
Untuk setiap slide, lakukan langkah-langkah berikut:
Periksa apakah slide memiliki gambar latar menggunakan metode ISlide.getBackground().getFillFormat().getFillType().
Jika latar belakang memiliki gambar maka ekstrak gambar menggunakan metode getImage().
Periksa apakah slide tata letak memiliki gambar latar menggunakan metode ISlide.getLayoutSlide().getBackground().getFillFormat().getFillType().
Jika latar belakang slide tata letak diisi dengan gambar, ekstrak menggunakan metode getImage().
Terakhir, simpan gambar yang diekstraksi sebagai file.
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.