Apache POI PPT - Resimler
Bu bölümde, bir PPT'ye nasıl görüntü ekleneceğini ve ondan bir görüntünün nasıl okunacağını öğreneceksiniz.
Görüntü Ekleme
Kullanarak bir sunuya görüntü ekleyebilirsiniz. createPicture() yöntemi XSLFSlide. Bu yöntem, görüntüyü bayt dizisi biçiminde kabul eder. Bu nedenle, sunuya eklenecek görüntünün bir bayt dizisi oluşturmanız gerekir.
Sunuma bir resim eklemek için verilen prosedürü izleyin. Kullanarak boş bir slayt gösterisi oluşturunXMLSlideShow aşağıda gösterildiği gibi -
XMLSlideShow ppt = new XMLSlideShow();
Kullanarak boş bir sunu oluşturun createSlide().
XSLFSlide slide = ppt.createSlide();
Eklenecek görüntü dosyasını okuyun ve bunu kullanarak bayt dizisine dönüştürün. IOUtils.toByteArray() of IOUtils aşağıda gösterildiği gibi sınıf -
//reading an image
File image = new File("C://POIPPT//boy.jpg");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
Görüntüyü sunuya ekleyin. addPicture(). Bu yöntem iki değişkeni kabul eder: eklenecek görüntünün bayt dizisi biçimi ve görüntünün dosya biçimini temsil eden statik değişken. KullanımıaddPicture() yöntem aşağıda gösterilmiştir -
int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
Kullanarak resmi slayda gömün createPicture() aşağıda gösterildiği gibi -
XSLFPictureShape pic = slide.createPicture(idx);
Aşağıda, bir sunumdaki slayta bir resim eklemek için eksiksiz bir program verilmiştir -
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.util.IOUtils;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPictureShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;
public class AddingImage {
public static void main(String args[]) throws IOException {
//creating a presentation
XMLSlideShow ppt = new XMLSlideShow();
//creating a slide in it
XSLFSlide slide = ppt.createSlide();
//reading an image
File image = new File("C://POIPPT//boy.jpg");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
//adding the image to the presentation
int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
//creating a slide with given picture on it
XSLFPictureShape pic = slide.createPicture(idx);
//creating a file object
File file = new File("addingimage.pptx");
FileOutputStream out = new FileOutputStream(file);
//saving the changes to a file
ppt.write(out)
System.out.println("image added successfully");
out.close();
}
}
Yukarıdaki Java kodunu farklı kaydedin AddingImage.javave ardından komut isteminden aşağıdaki gibi derleyin ve yürütün -
$javac AddingImage.java
$java AddingImage
Aşağıdaki çıktıyı oluşturmak için derlenecek ve çalıştırılacaktır -
reordering of the slides is done
Yeni eklenen resimli slaytı içeren sunum aşağıdaki gibi görünür -
Görüntü Okuma
Kullanarak tüm resimlerin verilerini alabilirsiniz. getAllPictures() yöntemi XMLSlideShowsınıf. Aşağıdaki program bir sunumdan görüntüleri okur -
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
public class Readingimage {
public static void main(String args[]) throws IOException {
//open an existing presentation
File file = new File("addingimage.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
//reading all the pictures in the presentation
for(XSLFPictureData data : ppt.getAllPictures()){
byte[] bytes = data.getData();
String fileName = data.getFileName();
int pictureFormat = data.getPictureType();
System.out.println("picture name: " + fileName);
System.out.println("picture format: " + pictureFormat);
}
//saving the changes to a file
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);
out.close();
}
}
Yukarıdaki Java kodunu farklı kaydedin Readingimage.javave ardından komut isteminden aşağıdaki gibi derleyin ve yürütün -
$javac Readingimage.java
$java Readingimage
Aşağıdaki çıktıyı oluşturmak için derlenecek ve çalıştırılacaktır -
picture name: image1.png
picture format: 6