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