2016-02-29 67 views
0

我想读一个功率点图像到Java显示在用户窗体上。使用apache读取一个幻灯片图像到一个bufferedImage

我是不是试图将整张幻灯片导出为图像。我需要访问已经插入到幻灯片中的图像。

我已经尝试了下面的代码,我觉得我真的很接近,但ImageIO.read返回null。

public BufferedImage getImage2() { 
    java.io.InputStream fin = null; 
    try { 
     PackageRelationship packRel = mySlide.getPackagePart().getRelationship(myName); 
     PackagePart part = packRel.getSource(); 
     fin = part.getInputStream(); 
     BufferedImage imBuff = ImageIO.read(fin); 
     return imBuff; 
    } catch (IOException ex) { 
     Exceptions.printStackTrace(ex); 
    } finally { 
     try { 
      fin.close(); 
     } catch (IOException ex) { 
      Exceptions.printStackTrace(ex); 
     } 
    } 
    return null; 
} 

如果有人有任何经验试图做到这一点,将不胜感激。谢谢

+0

什么是“power point image”? 'ImageIO'可能不支持它。 – MikeCAT

+0

这是一个图像添加到存储在Powerpoint zip文件中的演示文稿。它通常是jpeg,png等。 – emmistar

+0

如果是这样,我会喜欢它但是我不想将整张幻灯片作为图像提取出来,我已经在我的代码中使用了它。我正试图获取放在幻灯片上的图像,并阅读精确的图像。 – emmistar

回答

1

尝试这样的事情:在xslf data extraction example

for(XSLFShape shape : mySlide){ 
    if (shape instanceof XSLFPictureShape){ 
     XSLFPictureShape pShape = (XSLFPictureShape)shape; 
     XSLFPictureData pData = pShape.getPictureData(); 
     InputStream pIs = pData.getInputStream(); 
     // ... 
    } 
} 

更多细节。