有时,单靠文字很难向听众清楚地传达信息,尤其是当您描述的内容相当抽象时。在 PowerPoint 演示文稿中添加图像可以帮助您以更易于理解的方式传达您的想法,并能最大程度地减少您与读者之间的误解。在某些情况下,您可能还想从 PowerPoint 演示文稿中提取现有图像。本文将演示如何使用 Spire.Presentation for Java 在 PowerPoint 文档中添加或提取图像。
安装 Spire.Presentation for Java
首先,您需要在 Java 程序中添加 Spire.Presentation.jar 文件作为一个依赖项。您可以从这个链接下载 JAR 文件。如果您使用 Maven,则可以通过在 pom.xml 文件中添加以下代码轻松导入该 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.presentation</artifactId>
<version>9.11.3</version>
</dependency>
</dependencies>
将图像添加到幻灯片
Spire.Presentation 提供了 ISlide.getShapes().appendEmbedImage() 方法来将图像添加到特定幻灯片。以下是详细步骤:
- 初始化 Presentation 类的一个实例。
- 使用 Presentation.loadFromFile() 方法加载 PowerPoint 文档。
- 使用 Presentation.getSlides().get(int) 方法通过索引获取特定幻灯片。
- 使用 ISlide.getShapes().appendEmbedImage() 方法将图像添加到幻灯片。
- 使用 Presentation.saveToFile() 方法保存结果文档。
- Java
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import java.awt.geom.Rectangle2D;
public class AddImageToSlide {
public static void main(String []args) throws Exception {
//初始化 Presentation 类的一个实例
Presentation presentation = new Presentation();
//加载 PowerPoint 文档
presentation.loadFromFile("示例.pptx");
//获取特定幻灯片
ISlide slide = presentation.getSlides().get(0);
//将图像添加到幻灯片
String imageFile = "image.png";
Rectangle2D.Double rect1 = new Rectangle2D.Double(presentation.getSlideSize().getSize().getWidth() / 2 - 400, 120, 230, 250);
IEmbedImage image = slide.getShapes().appendEmbedImage(ShapeType.RECTANGLE, imageFile, rect1);
image.getLine().setFillType(FillFormatType.NONE);
//保存结果文档
presentation.saveToFile("将图像添加到幻灯片.pptx", FileFormat.PPTX_2013);
}
}
将图像添加到幻灯片母版
幻灯片母版是控制有关主题、布局、背景、颜色和字体的所有信息的顶部幻灯片,这些信息将被演示文稿中的其他幻灯片接替。换句话说,当您修改幻灯片母版的样式时,演示文稿中的每张幻灯片都会相应更改,包括后来添加的幻灯片。如果您希望一张图片出现在您所有的幻灯片上,您可以将它添加到此处——幻灯片母版。
Spire.Presentation 提供 IMasterSlide.getShapes().appendEmbedImage() 方法来将图像添加到幻灯片母版。详细步骤如下:
- 初始化 Presentation 类的一个实例。
- 使用 Presentation.loadFromFile() 方法加载 PowerPoint 文档。
- 使用 Presentation.getMasters().get(int) 方法通过索引获取文档中的幻灯片母版。
- 使用 IMasterSlide.getShapes().appendEmbedImage() 方法将图像添加到幻灯片母版。
- 使用 Presentation.saveToFile() 方法保存结果文档。
- Java
import com.spire.presentation.*;
import com.spire.presentation.drawing.FillFormatType;
import java.awt.geom.Rectangle2D;
public class AddImageToSlideMaster {
public static void main(String []args) throws Exception {
//初始化 Presentation 类的一个实例
Presentation presentation = new Presentation();
//加载 PowerPoint 文档
presentation.loadFromFile("示例文档.pptx");
//获取文档中的幻灯片母版
IMasterSlide master = presentation.getMasters().get(0);
//将图像添加到幻灯片母版
String image = "logo.png";
Rectangle2D.Double rect = new Rectangle2D.Double(40, 40, 80, 80);
IEmbedImage pic = master.getShapes().appendEmbedImage(ShapeType.RECTANGLE, image, rect);
pic.getLine().getFillFormat().setFillType(FillFormatType.NONE);
//向演示文稿添加新幻灯片
presentation.getSlides().append();
//保存结果文档
presentation.saveToFile("将图像添加到幻灯片母版.pptx", FileFormat.PPTX_2013);
}
}
从幻灯片中提取图像
要从特定幻灯片中提取图像,您需要遍历幻灯片上的所有形状,找到 SlidePicture 或 PictureShape 类型的形状,然后调用 SlidePicture.getPictureFill().getPicture().getEmbedImage().getImage() 或 PictureShape.getEmbedImage().getImage() 方法来检索图像。详细步骤如下:
- 初始化 Presentation 类的一个实例。
- 使用 Presentation.loadFromFile() 方法加载 PowerPoint 文档。
- 使用 Presentation.getSlides().get(int) 方法通过索引获取特定幻灯片。
- 循环遍历幻灯片上的所有形状。
- 检查形状是否为 SlidePicture 或 PictureShape 类型。如果结果为真,则使用 SlidePicture.getPictureFill().getPicture().getEmbedImage().getImage() 或 PictureShape.getEmbedImage().getImage() 方法检索图像。
- 将图像保存为 PNG 文件。
- Java
import com.spire.presentation.*;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class ExtractImageFromSlide {
public static void main(String []args) throws Exception {
//初始化 Presentation 类的一个实例
Presentation ppt = new Presentation();
//加载 PowerPoint 文档
ppt.loadFromFile("图像.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("幻灯片/" + "extractImage-%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("幻灯片/" + "extractImage-%1$s.png", i)));
}
}
}
}
从 PowerPoint 文档中提取所有图像
要从 PowerPoint 文档中提取所有图像,可以使用 Presentation.getImages() 方法获取文档的图像集合,然后循环遍历图像集合并调用 ImageCollection.get(int).getImage() 方法来检索 图片。以下是详细步骤:
- 初始化 Presentation 类的一个实例。
- 使用 Presentation.loadFromFile() 方法加载 PowerPoint 文档。
- 使用 Presentation.getImages() 方法获取文档的图像集合。
- 遍历图像集合并调用 ImageCollection.get(int).getImage() 方法来检索图像。
- 将图像保存为 PNG 文件。
- Java
import com.spire.presentation.Presentation;
import com.spire.presentation.collections.ImageCollection;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
public class ExtractAllImagesFromPowerPoint {
public static void main(String []args) throws Exception {
//初始化 Presentation 类的一个实例
Presentation ppt = new Presentation();
//加载 PowerPoint 文档
ppt.loadFromFile("图像.pptx");
//获取文档的图像集合
ImageCollection collection = ppt.getImages();
//遍历图像集合
for (int i = 0; i < collection.getCount(); i++) {
//Retrieve images from the collection
BufferedImage image = collection.get(i).getImage();
ImageIO.write(image, "PNG", new File(String.format("presentation/" + "extractImage-%1$s.png", i)));
}
}
}
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。