Apache POIPPT-画像
この章では、PPTに画像を追加する方法と、PPTから画像を読み取る方法を学習します。
画像の追加
を使用してプレゼンテーションに画像を追加できます createPicture() の方法 XSLFSlide。このメソッドは、バイト配列形式の形式の画像を受け入れます。したがって、プレゼンテーションに追加する画像のバイト配列を作成する必要があります。
所定の手順に従って、プレゼンテーションに画像を追加します。を使用して空のスライドショーを作成しますXMLSlideShow 以下に示すように-
XMLSlideShow ppt = new XMLSlideShow();
を使用して空のプレゼンテーションを作成します createSlide()。
XSLFSlide slide = ppt.createSlide();
追加する画像ファイルを読み取り、を使用してバイト配列に変換します IOUtils.toByteArray() の IOUtils 以下に示すクラス-
//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()。このメソッドは、追加される画像のバイト配列形式と、画像のファイル形式を表す静的変数の2つの変数を受け入れます。の使用法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