2011-05-03 48 views
0

我試圖從.TIFF文件創建一個BufferedImage一個BufferedImage(生()是一個.TIFF圖像的路徑):創建從.TIFF文件

// read a buffered image from the disk 
BufferedImage buff = ImageIO.read(new File(raw())); 

本來ImageIO.read返航null,但我讀到,我需要將JAI ImageIO JAR添加到您的類路徑中,這是我做的。現在我收到以下錯誤:

Exception in thread "main" javax.imageio.IIOException: I/O error reading image metadata! 
     at com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.readMetadata(TIFFImageReader.java:340) 
     at com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.seekToImage(TIFFImageReader.java:310) 
     at com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.prepareRead(TIFFImageReader.java:971) 
     at com.sun.media.imageioimpl.plugins.tiff.TIFFImageReader.read(TIFFImageReader.java:1153) 
     at javax.imageio.ImageIO.read(ImageIO.java:1422) 
     at javax.imageio.ImageIO.read(ImageIO.java:1282) 
     at core.Page.initGuesses(Page.java:101) 
.... 

有誰知道可能是什麼問題?我做錯了什麼嗎?

謝謝!

+0

您是否試過ImageIO.getImageReadersByFormatName(「tiff」);方法來看看它是否返回了一些東西?如果是這樣,它會返回什麼?這應該告訴你,如果你的特定平臺/環境聲稱有一個解碼器爲.tiff,或任何其他任意格式。 – jefflunt 2011-05-03 20:03:24

回答

1

我也面臨同樣的問題。我試圖從tiff byte []獲取BufferedImage,但結果爲空。

我已經評論了Tomcat的server.xml文件中與JreMemoryLeaks相關的一行。 只是註釋此行:

Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" 

該解決方案爲我工作。