Apache POI PPT - รูปภาพ
ในบทนี้คุณจะได้เรียนรู้วิธีการเพิ่มรูปภาพลงใน PPT และวิธีอ่านรูปภาพจากมัน
การเพิ่มรูปภาพ
คุณสามารถเพิ่มรูปภาพลงในงานนำเสนอโดยใช้ไฟล์ createPicture() วิธีการของ XSLFSlide. วิธีนี้ยอมรับภาพในรูปแบบของไบต์อาร์เรย์ ดังนั้นคุณต้องสร้างอาร์เรย์ไบต์ของรูปภาพที่จะเพิ่มลงในงานนำเสนอ
ทำตามขั้นตอนที่กำหนดเพื่อเพิ่มรูปภาพในงานนำเสนอ สร้างสไลด์โชว์เปล่าโดยใช้XMLSlideShow ดังแสดงด้านล่าง -
XMLSlideShow ppt = new XMLSlideShow();
สร้างงานนำเสนอเปล่าโดยใช้ createSlide().
XSLFSlide slide = ppt.createSlide();
อ่านไฟล์รูปภาพที่จะเพิ่มและแปลงเป็นไบต์อาร์เรย์โดยใช้ IOUtils.toByteArray() ของ IOUtils class ดังรูปด้านล่าง -
//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() วิธีการแสดงด้านล่าง -
int 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.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();
}
}
บันทึกโค้ด Java ด้านบนเป็น AddingImage.javaจากนั้นรวบรวมและดำเนินการจากพรอมต์คำสั่งดังต่อไปนี้ -
$javac AddingImage.java
$java AddingImage
มันจะรวบรวมและดำเนินการเพื่อสร้างผลลัพธ์ต่อไปนี้ -
reordering of the slides is done
งานนำเสนอด้วยสไลด์ที่เพิ่มใหม่พร้อมรูปภาพจะปรากฏดังนี้ -
กำลังอ่านรูปภาพ
คุณสามารถรับข้อมูลของรูปภาพทั้งหมดโดยใช้ไฟล์ getAllPictures() วิธีการของ XMLSlideShowชั้นเรียน โปรแกรมต่อไปนี้อ่านภาพจากงานนำเสนอ -
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();
}
}
บันทึกโค้ด Java ด้านบนเป็น Readingimage.javaจากนั้นรวบรวมและดำเนินการจากพรอมต์คำสั่งดังต่อไปนี้ -
$javac Readingimage.java
$java Readingimage
มันจะรวบรวมและดำเนินการเพื่อสร้างผลลัพธ์ต่อไปนี้ -
picture name: image1.png
picture format: 6