有时,单靠文字很难向听众清楚地传达信息,尤其是当您描述的内容相当抽象时。在 powerpoint 演示文稿中添加图像可以帮助您以更易于理解的方式传达您的想法,并能最大程度地减少您与读者之间的误解。在某些情况下,您可能还想从 powerpoint 演示文稿中提取现有图像。本文将演示如何使用 spire.presentation for java 在 powerpoint 文档中添加或提取图像。
安装 spire.presentation for java
首先,您需要在 java 程序中添加 spire.presentation.jar 文件作为一个依赖项。您可以从这个链接下载 jar 文件。如果您使用 maven,则可以通过在 pom.xml 文件中添加以下代码轻松导入该 jar 文件。
com.e-iceblue
e-iceblue
https://repo.e-iceblue.cn/repository/maven-public/
e-iceblue
spire.presentation
8.9.4
将图像添加到幻灯片
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 天的临时许可证。