首页 > 应用开发 > > Java 添加、提取PPT中的图片
本篇文章将介绍如何通过Java编程来添加图片到PPT幻灯片中的指定位置,以及如何提取PPT幻灯片中已有的图片,包括提取所有幻灯片中的图片、提取指定幻灯片中的图片。
使用工具:Free Spire.Presentation for Java (免费版)
Jar文件导入:
导入方法1:通过官网下载jar包,并解压。在Java程序中导入Spire.Presentation.jar文件。如下图:

导入方法2:通过Maven仓库安装导入,详见导入方法。
Java代码示例(供参考)
【示例1】添加图片到PPT幻灯片
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import java.awt.geom.Rectangle2D;
public class AddImage {
public static void main(String[]args) throws Exception {
//加载测试文档
Presentation ppt = new Presentation();
ppt.loadFromFile("sample.pptx");
//获取第一张幻灯片
ISlide slide = ppt.getSlides().get(0);
//指定图片在幻灯片中的位置及图片大小
Rectangle2D rec = new Rectangle2D.Double(ppt.getSlideSize().getSize().getWidth() / 2 - 320, 180, 300, 200);
//加载图片添加至幻灯片
IEmbedImage image = slide.getShapes().appendEmbedImage(ShapeType.RECTANGLE, "bg.png", rec);
image.getLine().setFillType(FillFormatType.NONE);
//保存文档
ppt.saveToFile("AddImg.pptx",FileFormat.PPTX_2010);
}
}
图片添加效果:

【示例2】读取PPT幻灯片中的图片
1. 读取所有幻灯片中的图片
import com.spire.presentation.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class ExtractAllImgs {
public static void main(String[] args)throws Exception{
//加载文档
Presentation ppt = new Presentation();
ppt.loadFromFile("test.pptx");
//提取幻灯片中的所有图片
for (int i = 0; i < ppt.getImages().getCount(); i++) {
BufferedImage image = ppt.getImages().get(i).getImage();
ImageIO.write(image, "PNG", new File(String.format("提取所有图片-%1$s.png", i)));
}
}
}
2.
读取指定幻灯片中的图片
import com.spire.presentation.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class ExtractSpecifiedImgs{
public static void main(String[]args)throws Exception{
//加载测试文档
Presentation ppt = new Presentation();
ppt.loadFromFile("test.pptx");
//获取第一张幻灯片
ISlide slide = ppt.getSlides().get(0);
//提取图片
for(int i = 0; i< slide.getShapes().getCount(); i++)
{
IShape shape = slide.getShapes().get(i);
if(shape instanceof SlidePicture)
{
SlidePicture pic = (SlidePicture) shape;
BufferedImage image = pic.getPictureFill().getPicture().getEmbedImage().getImage();
ImageIO.write(image, "PNG", new File(String.format("提取指定图片-%1$s.png", i)));
}
if(shape instanceof PictureShape)
{
PictureShape ps = (PictureShape) shape;
BufferedImage image = ps.getEmbedImage().getImage();
ImageIO.write(image, "PNG", new File(String.format("提取指定图片-%1$s.png", i)));
}
}
}
}
(本文完)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2508/viewspace-3158334/ ,如需转载,请注明出处,否则将追究法律责任。