idea怎么插入图片_Java 插入、编辑、提取及删除PowerPoint中的图片

本文详细介绍了如何利用FreeSpire.Presentation for Java控件在PowerPoint中插入、编辑、提取和删除图片。通过代码示例展示了具体的操作步骤,包括图片的大小、位置、透明度等属性的修改,并提供了提取和删除图片的方法。
摘要由CSDN通过智能技术生成

本文将使用Free Spire.Presentation for Java免费控件来介绍如何插入图片到PowerPoint幻灯片中,以及如何编辑、提取和删除幻灯片中已有的图片。

Free Spire.Presentation for Java 是一个专业的PowerPoint API,它允许开发人员在Java应用程序中创建、编辑、读取、转换和保存PowerPoint文档。作为一款独立的Java组件,它的运行环境无需安装Microsoft PowerPoint。

Jar文件获取及导入

在运行代码前,需将Jar包导入IDEA中。导入方式有两种:其一,在E-iceblue中文官网上下载Free Spire.Presentation for Java产品包,解压后将lib文件夹下的Spire.Presentation.jar手动导入IDEA;其二,在IDEA中创建一个Maven项目,然后在pom.xml文件下键入以下代码,最后点击“Import Changes”即可。

com.e-icebluehttp://repo.e-iceblue.cn/repository/maven-public/e-iceblue        spire.presentation.free        3.9.0

代码示例

示例1 插入图片到PowerPoint幻灯片中

import com.spire.presentation.*;import com.spire.presentation.drawing.FillFormatType;import java.awt.geom.Rectangle2D;public class InsertImages {    public static void main(String[] args) throws Exception {        //创建Presentation实例        Presentation ppt = new Presentation();Rectangle2D rect = new Rectangle2D.Double(ppt.getSlideSize().getSize().getWidth() / 2 - 280, 140, 300, 250);        //获取第一张幻灯片(创建后默认含有一张幻灯片)        ISlide slide = ppt.getSlides().get(0);        //插入图片到幻灯片        IEmbedImage image = slide.getShapes().appendEmbedImage(ShapeType.RECTANGLE, "C:甥敳獲Test1DesktopImage1.jpg", rect);        image.getLine().setFillType(FillFormatType.NONE);        //添加一张新的幻灯片        slide = ppt.getSlides().append();        //插入图片到幻灯片        image = slide.getShapes().appendEmbedImage(ShapeType.RECTANGLE, "C:甥敳獲Test1DesktopImage2.png", rect);        image.getLine().setFillType(FillFormatType.NONE);        //保存文档        ppt.saveToFile("output/InsertImages.pptx", FileFormat.PPTX_2013);    }}

效果图:

e11edfcb81642ba78c8e390f66873f21.png

示例2 编辑PowerPoint幻灯片中的图片

import com.spire.presentation.*;public class EditImage {    public static void main(String[] args) throws Exception {        //创建实例,加载PPT测试文档        Presentation ppt = new Presentation();        ppt.loadFromFile("C:甥敳獲Test1DesktopInsertImages.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;                pic.setHeight(270);                pic.setWidth(400);                pic.setAlternativeText("原始图片文件");                pic.setAlternativeTitle("标题1");                pic.setRotation(30);                pic.setLeft(200);                pic.setTop(150);                pic.setName("图片1");                pic.getPictureFill().getPicture().setTransparency(60);            }        }        //保存文档        ppt.saveToFile("output/ModifyImage.pptx",FileFormat.PPTX_2013);        ppt.dispose();    }}

编辑前后对比图:

7997ac7958f700a0a8339f640b03651b.png

示例3 提取Powerpoint幻灯片中的图片

情况1:提取所有幻灯片中的图片

import com.spire.presentation.Presentation;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;public class ExtractImages {    public static void main(String[] args) throws Exception {        //创建Presentation实例        Presentation ppt = new Presentation();        //加载PowerPoint文档        ppt.loadFromFile("C:甥敳獲Test1DesktopInsertImages.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("output/" + "extractImage-%1$s.png", i)));        }    }}

提取效果:

237721d8f59f9981bc7d04f8fe411e12.png

情况2 提取指定幻灯片中的图片

import com.spire.presentation.*;import javax.imageio.ImageIO;import java.awt.image.BufferedImage;import java.io.File;public class ExtractSpecifiedImage {    public static void main(String[] args) throws Exception {        //创建Presentation实例        Presentation ppt = new Presentation();        //加载PowerPoint文档        ppt.loadFromFile("C:甥敳獲Test1DesktopInsertImages.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("output/" + "extractSpecifiedImage-%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("output/" + "extractSpecifiedImage-%1$s.png", i)));            }        }    }}

提取效果:

70845266074a0211415b41b0639cf364.png

示例4 删除PowerPoint幻灯片中的图片

import com.spire.presentation.*;public class DeleteImages {    public static void main(String[] args) throws Exception {        //加载PPT文档        Presentation ppt = new Presentation();        ppt.loadFromFile("C:甥敳獲Test1DesktopInsertImages.pptx");        //获取指定幻灯片        ISlide slide = ppt.getSlides().get(1);        //遍历幻灯片中的形状        for( int i = 0; i< slide.getShapes().getCount();i++){            IShape shape = slide.getShapes().get(i);            //删除图片            if(shape instanceof SlidePicture){                SlidePicture pic = (SlidePicture) shape;                slide.getShapes().remove(pic);            }        }        //保存文档        ppt.saveToFile("output/DeleteImages.pptx", FileFormat.PPTX_2013);        ppt.dispose();    }}

删除前后对比图:

5110a03bfc00381896c3b8b5f4c4871e.png
在IntelliJ IDEA插入图片可以通过以下步骤完成: 1. 首先,将要插入图片转换为Base64格式。可以使用在线工具,如http://imgbase64.duoshitong.com/,将图片转换成Base64字符串。 2. 在文章末尾或某个固定位置,将Base64字符串以id的形式保存下来,如`[doge]:data:image/png;base64,iVBORw0......`。 3. 在文章的要插入图片的位置,使用Markdown语法插入图片的引用。例如,`![avatar][doge]`,其`doge`是前面保存的id。 4. 最后,刷新界面或重新加载文章时,IntelliJ IDEA会根据引用的id找到对应的Base64字符串并将其解析为图片显示在文章。 通过上述步骤,您就可以在IntelliJ IDEA插入图片并显示在文章了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [IDEA的md文件插入图片的方法](https://blog.csdn.net/sophie1314/article/details/90897968)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [ELearning设计文档1](https://download.csdn.net/download/weixin_35767338/86346278)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值