
- Apache POI PPT 教程
- Apache POI PPT - 首頁
- Apache POI PPT - 概述
- Apache POI PPT - Java API 版本
- Apache POI PPT - 安裝
- Apache POI PPT - 類與方法
- Apache POI PPT - 簡報
- Apache POI PPT - 幻燈片佈局
- Apache POI PPT - 幻燈片管理
- Apache POI PPT - 圖片
- Apache POI PPT - 建立超連結
- Apache POI PPT - 讀取形狀
- Apache POI PPT - 文字格式化
- Apache POI PPT - 合併
- Apache POI PPT - PPT 轉圖片
- Apache POI PPT 資源
- Apache POI PPT - 快速指南
- Apache POI PPT - 有用資源
- Apache POI PPT - 討論
Apache POI PPT - 圖片
本章將學習如何在PPT中新增圖片以及如何從中讀取圖片。
新增圖片
您可以使用XSLFSlide的createPicture()方法將圖片新增到簡報。此方法接受位元組陣列格式的圖片。因此,您必須建立要新增到簡報的圖片的位元組陣列。
按照以下步驟將圖片新增到簡報。使用XMLSlideShow建立一個空幻燈片放映,如下所示:
XMLSlideShow ppt = new XMLSlideShow();
使用createSlide()在其中建立一個空的簡報。
XSLFSlide slide = ppt.createSlide();
讀取要新增的圖片檔案,並使用IOUtils類的IOUtils.toByteArray()將其轉換為位元組陣列,如下所示:
//reading an image File image = new File("C://POIPPT//boy.jpg"); //converting it into a byte array byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
使用addPicture()將圖片新增到簡報。此方法接受兩個變數:要新增的圖片的位元組陣列格式和表示圖片檔案格式的靜態變數。addPicture()方法的用法如下所示:
XSLFPictureData idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
使用createPicture()將圖片嵌入幻燈片,如下所示:
XSLFPictureShape pic = slide.createPicture(idx);
下面是將圖片新增到簡報幻燈片的完整程式:
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.sl.usermodel.PictureData.PictureType; 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 XSLFPictureData idx = ppt.addPicture(picture, PictureType.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(); } }
將上述Java程式碼儲存為AddingImage.java,然後從命令提示符編譯並執行它,如下所示:
$javac AddingImage.java $java AddingImage
它將編譯並執行以生成以下輸出:
reordering of the slides is done
包含新新增的帶圖片幻燈片的簡報如下所示:

讀取圖片
您可以使用XMLSlideShow類的getPictureData()方法獲取所有圖片的資料。以下程式從簡報中讀取圖片:
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.sl.usermodel.PictureData.PictureType; 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.getPictureData()){ byte[] bytes = data.getData(); String fileName = data.getFileName(); PictureType pictureFormat = data.getType(); 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(); } }
將上述Java程式碼儲存為Readingimage.java,然後從命令提示符編譯並執行它,如下所示:
$javac Readingimage.java $java Readingimage
它將編譯並執行以生成以下輸出:
picture name: image1.png picture format: 6
廣告