Java 从.tiff文件创建BuffereImage

Java 从.tiff文件创建BuffereImage,java,bufferedimage,Java,Bufferedimage,我正在尝试从.tiff文件创建BuffereImage(raw()是.tiff图像的路径): 最初ImageIO.read返回null,但我读到我需要将JAI ImageIO JAR添加到您的类路径中,我这样做了。现在我得到了以下错误: Exception in thread "main" javax.imageio.IIOException: I/O error reading image metadata! at com.sun.media.imageioimpl.plugi

我正在尝试从.tiff文件创建BuffereImage(raw()是.tiff图像的路径):

最初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)
....
有人知道问题出在哪里吗?我做错什么了吗


谢谢

我也面临同样的问题。我试图从tiff字节[]获取BuffereImage,但结果为null

我已经对Tomcat的server.xml文件中的一行进行了注释,该文件与JreMemoryLeaks相关。 请评论这句话:

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

这个解决方案对我有效。

您是否尝试过ImageIO.getImageReadersByFormatName(“tiff”);方法来查看它是否返回了某些内容?如果是,它会返回什么?这应该告诉您,您的特定平台/环境是否声称拥有.tiff解码器或任何其他任意格式。
Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener"