java - 使用 Apache POI hslf 调整图片大小/压缩图片 - PowerPoint

标签 java apache-poi powerpoint

您好,我使用 apache poi 构建了一个 powerpoint 演示文稿,并向演示文稿添加了很多图像。

private void addImage(SlideShow slideShow, Sheet slide, File image, int x, int y, int w, int h) {
    try {
        int idx = slideShow.addPicture(image, Picture.JPEG);
        Picture pict = new Picture(idx);
        pict.setAnchor(new Rectangle(x, y, w, h));
        slide.addShape(pict);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

该功能有效,我最终得到了一个 ppt 演示文稿,但 ppt 文件太大,在另一台 PC 上我收到堆空间错误。 所以我想调整幻灯片中的图像大小/压缩我的图像。我的每张幻灯片上有四张图片 - 因此它们不需要具有原始分辨率。

poi 中有内置函数可以做到这一点吗? 类似的东西

pict.resize(width, height);

我使用的是 apache poi 3.7

提前致谢

最佳答案

POI 不会修改图片数据本身。您需要resample之前自己做的。

关于java - 使用 Apache POI hslf 调整图片大小/压缩图片 - PowerPoint,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19589115/

相关文章:

r - 将几个图从 R 导出到 ppt

excel - 在 Excel VBA 中保存 PowerPoint 文件时出现不可抑制的错误

excel - 通过 VBA 将 Excel 表格复制到 PowerPoint 并保存

java - 两个嵌套的 EJB Bean - 只有第一个被注入(inject)了 entitymanager

java - 创建具有不同参数的类的多个实例

java - 如何使用 Apache POI 和 Java 添加多个不同的 Excel 列

java - 如何为使用 WorkbookFactory 创建的工作簿创建 CellStyle?

java - 如果有人通过快速设置菜单关闭 NFC,如何通知应用程序?

java - Hibernate 无法保存其中一个字段为枚举的实体

java - Apache POI 发生了非法的反射访问操作